有一个xxx.py文件我需要启动后一直运行着,于是我使用
xxx.py
nohup python xx.py &
这样启动没问题,结束 ssh 连接也没问题,不过就是过一会(时间不定,有时 1 小时,有时几分钟)就是被自动结束。
请教各位是什么情况造成的!
程序执行出错了于是就退了,我是这么理解的 @元芳 你怎么看?
以 cron 方式运行呢?默认 ssh 不是持久链接的
我知道 ssh 不是持久的,所以我用了 nohup,但是还是要断掉!有没有更好的方式来实现,写一个守护进程是否复杂?
用 nohup 来跑就已经是个守护进程了。先看看代码本身的逻辑吧,如果:
nohup
那么都可能自动结束。nohup 默认会把进程的标准错误/标准输出都存下来 (具体位置看man nohup), 可以看看有没有打出错误信息什么的。
man nohup
如果代码不要求很严谨,可以更激进一些:用一个能提供自动重启的工具 (比如 supervisor) 而不是 nohup 来管理进程,进程挂了就强制重启之。实在闲得没事了再去调查原因......
除了上面几位说的,如果要自动重新运行,可以考虑 monit 或类似的工具。