让 PHP 脚本在 Web 服务器上无限期地运行

让 PHP 脚本在 Web 服务器上无限期地运行

我有一个很大的问题需要解决。基本上我没有什么使用经验Linux,并且最近我一直在从事一个项目,该项目涉及我必须使用相当多的Linux命令才能php scripts在我的网络服务器上运行。

基本上我有两个脚本

  1. get_tweets.php
  2. 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 是否有任何线索。

相关内容