我有一个很长的代码,它从文件中提取数据,将其存储在字典中,然后将其插入到 mysql 表中。我需要对一个包含近 1000 个文件的文件夹进行循环,这将需要几个小时。我见过很多相互矛盾的建议,不确定哪个是最简单、最安全的。即使我在计算机上注销我的用户(这意味着终端将退出),是否有一个命令可以让代码继续运行?我还没有开始运行它。
最佳答案
听起来您的代码当前运行方式类似于 ./ingest-data.py
,因此最简单的选择是添加前缀 nohup
(no-hangup 的缩写)。
nohup ./ingest-data.py
要在 shell 失败时保存调试输出,您需要将 nohup
输出重定向到文件。 Gnu Bash Redirection manual有更多详细信息。
nohup ./ingest-data.py >output 2>&1 &
或者,终端多路复用器(例如tmux
或byobu
)可以手动分离和重新连接,但如果shell连接断开,也将持续存在。如果您在终端上花费大量时间,那么您可能会对其他功能感兴趣,因此请查看一些文章和视频来衡量您的兴趣。
第三个选项是使用 X2Go 或 NoMachine 进行桌面分离/重新连接,但可能需要比当前项目更多的调整。
从 nohup
开始,如果您愿意,可以转向其他工具。
关于python - 让代码在注销后运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46289025/