让代码在注销后运行

时间:2017-09-18 22:26:33

标签: python mysql python-2.7 mysql-python nohup

我有一个很长的代码,它从文件中提取数据,将其存储在字典中,然后将其插入到mysql表中。我需要在一个近1000个文件的文件夹上循环这个,这需要几个小时。我看到了很多相互矛盾的建议,我不确定哪个最简单,最安全。是否有一个我可以运行的命令,即使我在计算机上注销了我的用户,也会让代码继续运行(这意味着终端将退出)?我还没有开始运行它。

2 个答案:

答案 0 :(得分:2)

听起来您的代码目前的运行方式与./ingest-data.py类似,因此最简单的选项是使用nohup作为前缀(无挂起的简称)。

nohup ./ingest-data.py

要在shell中断时保存调试输出,您需要将nohup输出重定向到文件。 Gnu Bash Redirection manual有更多详细信息。

nohup ./ingest-data.py >output 2>&1 &

或者,终端多路复用器(如tmuxbyobu)可以分离并重新连接到手动,但如果shell连接断开,也会保持不变。如果您在终端上花费了大量时间,那么其他功能可能会让您感兴趣,因此请查看一些文章和视频以评估您的兴趣。

第三个选项是使用X2Go或NoMachine进行桌面分离/重新连接,但可能需要比当前项目更多的调整。

nohup开始,如果您愿意,请转到其他工具。

答案 1 :(得分:1)

您可以在Pattern.compile("[0-9]{2}/[0-9]{2}/[0-9]{4}"); screen上运行代码。