我编写了一个叫做 的 Python 脚本scrape.py
。顾名思义,它是一个网络爬虫,我希望它在我的 Linux 机器上持续运行,即使在我注销并结束 ssh 会话之后也是如此。我在这里读了很多资料,有很多使用 的建议nohup python scrape.py &
。这个脚本运行良好,但是我一注销,脚本执行就停止了。我也探索了该supervisor
应用程序,但我没有 root 权限,所以它也失败了。你能建议我解决这个问题的方法吗?谢谢。
答案1
您可以使用多种方法(工具和命令)来实现类似的目的:
使用终端仿真器作为
tmux
和screen
:使用在后台执行的分离命令(也读):
nohup
- 运行不受挂断影响的命令,输出到非 tty;运行命令,忽略挂断信号。将命令推送到后台并将其与当前 shell 会话分离的常用语法:nohup COMMAND &
或者nohup COMMAND >/dev/null 2>&1 &
如果您想暂停由 创建的信息文件nohup
。提供了其基本用法的示例这里和这里。 还这里显示如何通过 ssh 命令使用它。disown
- 类似于nohup
,但它是 shell(zsh、ksh、bash)内置的;用于从作业表中删除作业,或标记作业,以便在父 shell 收到 SIGHUP 信号时(例如,如果用户注销),不会向它们发送 SIGHUP 信号。提供了使用示例这里。
使用
huponexit
Bash 选项:$ ./script.py > output.txt & [1] 7461 $ shopt -s huponexit $ exit
参考:
使用计划管理器作为
at
和crontab
:创建系统服务并启动,见: