Есть ли конкретная причина, по которой вы хотите сделать это вручную, а не автоматически?Разве это не тот случай, когда сервер всегда должен быть перезапущен?
Мой совет будет автоматизировать это, либо с помощью cron
проверять состояние вашего скрипта через регулярные интервалы, либо bash
бесконечный циклбессмертие сценария.
Сначала создайте сценарий запуска, чтобы для удобства вызывать ваш PHP, и назовите его run_login_server.sh
(не забудьте chmod + x, чтобы его можно было выполнить):
#!/bin/bash
/usr/bin/php /var/www/html_login_server.php > /dev/null
Затем создайте login_server_daemon.sh
, чтобы запустить ваш скрипт в бесконечном цикле (опять же, chmod +x
, чтобы сделать его исполняемым):
#!/bin/bash
while :
do
./run_login_server.sh # or any command line to be executed forever
done
NB. Я не задокументировал процесс php в приведенном выше bash
скрипт.Это работает, потому что цикл bash будет вызывать php каждый раз, и цикл будет повторяться только после смерти php.Просто выполните login_server_daemon.sh
, чтобы запустить цикл (либо через службу инициализации, либо в отдельном сеансе экрана, который вы используете сейчас).
Если ваши PHP-скрипты зависают или вы хотите перезагрузить их, потому чтоВы обновили свой код , вы можете просто убить зацикленный процесс - run_login_server.sh
и цикл bash возродит его.
Это так же просто, как killall run_login_server.sh
, что вы можете сделать с помощью php's exec
. Обратите внимание, что вы должны быть осторожны с пользовательскими разрешениями того, кто что выполнил : если вы выполняете login_server_daemon.sh
как your_username, но php работает как php_username, тогда php не будет иметь права на killall
ваш процесс.
Наконец, если вы не можете выбрать между cron
и script
подходами, вот несколько факторов, которые следует учитывать:
Сценарий должен жить вечно и умрет только в случае 1)явно убит, 2) bash каким-то образом отключается и умирает в цикле while, что, я сомневаюсь, произойдет, и 3) происходит катастрофа на всей машине, и в этом случае остановка вашего маленького bash-скрипта - наименьшее из ваших беспокойств.Бонус в сценарии заключается в том, что перезапуск происходит сразу после смерти php (или чего-либо, что вы хотите вызвать в бесконечном цикле).
cron
проблема в том, что он может проверять не более одного раза в минуту в большинстве случаев.частая настройка, если вы действительно заботитесь о немедленном выздоровлении.Это вызывает дополнительное раздражение, что если вы решите остановить скрипт, вам также придется удалить его из вашего crontab, или он просто вернется к жизни.