linux 下 Python 脚本后台执行(nohup command &)

学习笔记 马富天 2020-03-16 10:29:01 81 0

【摘要】需求:很多时候我们会在 linux 服务器上执行 python 脚本,然而脚本程序执行的时间可能比较长,当耗时过长的情况下,我们使用 ssh 远程登录到 linux 服务器上容易造成超时自动断开连接,当用户注销时,终端会收到 hup(hangup)信号从而关闭其所有子进程,会导致正在执行中的 python 脚本被中断,为了解决这一问题,我们使用 nohup 命令并结合 & 解决此问题。

命令格式:

  1. nohup command &

nohup 指:在忽略挂起信号的情况下运行给定的命令,以便在注销后命令可以在后台继续运行;nohup 并不支持后台运行,它是忽略内部的挂断信号,不挂断运行

& 指:后台运行,即将进程放到后台运行,这里的后台,其实指的是当前登陆终端的后台,如果在命令尚未执行完毕时就退出登陆,则此命令的执行会被中断。

那么,如果将 nohup 与 & 结合在一起使用,这样就可以不挂断的永久在后台执行。

命令示例:(将 test.py 输出的内容写入到 test.out 文件中)

  1. nohup python -u test.py 参数1 参数2 参数3 > test.out 2>&1 &

其中 "2>&1" 表示:将错误和输出都传到 test.out 文件中,默认状态只把输出输出到文件中

如果去掉末尾的 '&' ,则表示此命令会在终端前台工作,所有输出的内容会写入到 test.out 文件。

实时查看 test.py 输出的内容:

  1. tail -f -n 20 test.out

这样就解决了 python 脚本执行耗时长,由于用户注销(挂起)而执行被中断的问题,同时也使程序在后台中执行。

版权归 马富天个人博客 所有

本文标题:《linux 下 Python 脚本后台执行(nohup command &)》

本文链接地址:http://www.mafutian.com/440.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

1

0

上一篇《 logstash 同步 mysql 多张表到 es 》 下一篇《 python3 邮件发送(多收件人,多抄送人、多附件) 》

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码

TOP10

  • 浏览最多
  • 评论最多