Если вы действительно чувствуете необходимость в grep-выходе ps
, остерегайтесь того, что ваш grep найдет себя.
[[email protected] ~]$ sleep 60 &
[1] 66677
[[email protected] ~]$ 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
[[email protected] ~]$
Существует простой способ избежать этого. Просто сделайте часть своего grep более сложным регулярным выражением.
[[email protected] ~]$ sleep 60 &
[2] 66717
[[email protected] ~]$ 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
[[email protected] ~]$
С другой стороны, если вы просто хотите, чтобы убедиться, что ваш PHP скрипт всегда работает, вы можете обернуть его в чем-то, что повторно запускает его, когда он умирает:
while true; do
php /path/to/my.php
done
Если вы хочу, чтобы запустить при запуске, вы можете редактировать кронтаб на сервере, а также использовать @reboot тег, предполагая, что вы используете «Vixie» хроны (общие на Linux и BSD):
@reboot /path/to/wrapperscript
вы можете man crontab
и man 5 crontab
для получения дополнительной информации о том, как использовать cron и тег @reboot
.
если ваша система имеет 'pgrep', это намного проще в использовании. –