答案 0 :(得分:3)
答案 1 :(得分:1)
另一种方法是,循环启动你的php程序:
for ((;;))
do
my.php
done
使用Linux ps,您可以使用
ps -C "my.php"
而不是grep,以识别my.php。 Grep命令经常发现自己。也许你的ps有类似的开关?
答案 2 :(得分:1)
如果你真的觉得需要grep ps
的输出,请注意你的grep发现本身。
[ghoti@pc ~]$ sleep 60 &
[1] 66677
[ghoti@pc ~]$ ps aux | grep sleep
ghoti 66677 0.0 0.0 3928 784 11 S 4:11PM 0:00.00 sleep 60
ghoti 66681 0.0 0.0 16440 1348 11 S+ 4:12PM 0:00.00 grep sleep
[ghoti@pc ~]$
有一种简单的方法可以避免这种情况。只需将grep的一部分变成更复杂的正则表达式。
[ghoti@pc ~]$ sleep 60 &
[2] 66717
[ghoti@pc ~]$ ps aux | grep '[s]leep'
ghoti 66677 0.0 0.0 3928 784 11 S 4:11PM 0:00.00 sleep 60
ghoti 66717 0.0 0.0 3928 784 11 S 4:13PM 0:00.00 sleep 60
[ghoti@pc ~]$
另一方面,如果您只是想确保您的PHP脚本始终运行,您可以将它包装在它死亡时重新运行它的东西:
while true; do
php /path/to/my.php
done
如果你想在启动时运行它,你可以在服务器上编辑你的crontab,并使用@reboot标签,假设你正在使用“Vixie”cron(在Linux和BSD上很常见):
@reboot /path/to/wrapperscript
您可以 man crontab
和 man 5 crontab
了解有关如何使用cron和@reboot
标记的更多详细信息。