【问题标题】:Let code run after logout让代码在注销后运行
【发布时间】:2018-02-27 13:33:55
【问题描述】:
我有一个很长的代码,可以从文件中提取数据,将其存储在字典中,然后将其插入到 mysql 表中。我需要在一个包含近 1000 个文件的文件夹中循环,这需要几个小时。我看到了很多相互矛盾的建议,不确定哪个是最简单和最安全的。即使我在计算机上注销我的用户(这意味着终端将被退出),是否有我可以运行的命令让代码继续运行?我还没有开始运行它。
【问题讨论】:
-
这个问题已经在 SuperUser 上asked。不知道是否值得迁移只是为了被关闭作为骗子。
标签:
python
mysql
python-2.7
mysql-python
nohup
【解决方案1】:
听起来您的代码当前像./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)可以手动分离和重新连接,但如果外壳连接断开,也会继续存在。如果您在终端上花费大量时间,那么您可能会对其他功能感兴趣,因此请查看一些文章和视频以了解您的兴趣。
第三个选项是使用 X2Go 或 NoMachine 分离/重新连接桌面,但可能需要比当前项目更多的调整。
从nohup 开始,如果您愿意,请移至其他工具。
【解决方案2】:
您可以在screen 或tmux 上运行您的代码。