Мы использовали бесконечный цикл в живой системной среде, чтобы в основном ждать входящего SMS и затем обрабатывать его. Мы выяснили, что это делает ресурс сервера интенсивным с течением времени и должен был перезапустить сервер, чтобы освободить память.
Еще одна проблема, с которой мы столкнулись, - это когда вы выполняете скрипт с бесконечным циклом в своем браузере, даже если вы нажмете кнопку остановки, он будет продолжать работать, если вы не перезапустите Apache.
while (1){ //infinite loop
// write code to insert text to a file
// The file size will still continue to grow
//even when you click 'stop' in your browser.
}
Решение состоит в том, чтобы запустить скрипт PHP в качестве деамона в командной строке. Вот как:
nohup php myscript.php &
&
ставит свой процесс в фоновом режиме.
Не только мы нашли этот метод менее интенсивно использующих память, но вы также можете убить его без перезапуска Apache, выполнив следующую команду:
kill processid
Edit: Как Дагон отметил, что это на самом деле не истинный способ запуска PHP как «Daemon», но с использованием команды nohup
можно рассматривать как способ бедных людей запустить процесс как демон.
Вы хотите php-daemon – 2014-09-05 03:13:57
Лично я бы не использовал PHP для процессов daemon. Всегда могут возникать утечки памяти, и вы должны будете перезапустить их каждый месяц или около того. Вместо этого я бы рекомендовал использовать другой соответствующий язык. –
как ваш новый для php, возможно, вы должны объяснить, зачем вам это нужно, возможно, есть лучшая идея. – 2014-09-05 03:17:12