我有一个很大的问题需要解决。基本上我没有什么使用经验Linux
,并且最近我一直在从事一个项目,该项目涉及我必须使用相当多的Linux
命令才能php scripts
在我的网络服务器上运行。
基本上我有两个脚本
- get_tweets.php
- parse_tweets.php
我需要这些在接下来的 3 - 4 周内在我的网络服务器上持续运行。我使用以下命令让它们运行,它们似乎可以持续一天,但当我早上检查时,它们似乎已经停止工作了!
nohup php get_tweets.php > /dev/null &
进而
nohup php parse_tweets.php > /dev/null &
我知道通过使用&
我可以保持脚本运行,background
并且它们在我注销时运行,ssh
但就像我说的那样,它们似乎一整天都运行良好,然后当我早上检查时它们就停止了。
我遇到的问题是如何让它们不间断地运行。有没有一个简单的script
我可以写来检查它们是否正在运行,如果没有,则重新启动它们,或者也许每 5 小时重新启动一次或其他什么?
我非常感谢任何帮助人员,因为这是一个很大的问题,我不知道如何解决它。
答案1
在它周围放置一个无限循环:
nohup sh -c 'while true; do php get_tweets.php; done' >/dev/null &
nohup sh -c 'while true; do php parse_tweets.php; done' >/dev/null &
将输出重定向到真实文件(使用 >> 追加而不是覆盖)可能很有用,以便可以检查任何输出以了解脚本停止的原因。另请检查 nohup.out 是否有任何线索。