需求分析
我们经常会遇到一个问题,当使用SSH远程登录Linux服务器运行一些耗时较长的任务,当用户注销或者网络断开时,终端会收到HUP(hangup)信号从而关闭其所有子进程。
解决办法
Linux中,可以使用nohup将脚本放置在后台运行,其命令如下:
nohup python spider.py params1 > nohup.out 2>&1 & # spider.py:脚本名 params1参数
但在执行上述代码无法查看程序运行过程中python在控制台的输出结果,解决办法:使用-u参数。
nohup python -u spider.py params1 > nohup.out 2>&1 &
此时在工作目录中会产生一个nohup.out文件,使用tail -f: 根据文件描述符进行追踪,当文件改名或被删除,追踪停止。
tail -f nohup.out