python - 让代码在注销后运行

标签 python mysql python-2.7 mysql-python nohup

我有一个很长的代码,它从文件中提取数据,将其存储在字典中,然后将其插入到 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 &

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

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

nohup 开始,如果您愿意,可以转向其他工具。

关于python - 让代码在注销后运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46289025/

相关文章:

java - 从日历转换时sql.Timestamp 1秒错误

python - 计算 python 字典中每个键的出现次数

python - python中main函数调用失败

python - Python 中更好、更准确的 MIME 类型检测

python - Linux shell 中 youtube-dl 的简单队列

python - 使用 "open()"与 "with open()"读取文件

mysql - 使用 Galera 集群在 MariaDB 中进行分区轮换

Python递归挑战

python - 使用 reversed 函数在 Python 中反转嵌套元组

java - 我在计算 MySQL 错误日志时遇到了很多麻烦