У меня есть PHP-скрипт, работающий как демон. Время от времени я хочу, чтобы скрипт делал перерыв и перезапускается, чтобы очистить использование памяти при получении сигнала.
Я смотрю на shell_exec (); убить и перезапустить скрипт PHP, однако мне было интересно, если есть более чистый метод. Я также рассмотрел упаковку PHP-скрипта в пакет и перезапуск его при необходимости, но я разбираюсь только в PHP.
declare(ticks = 1);
$processID = pcntl_fork();
if ( $processID == -1 ) {
echo "\n Error: The process failed to fork. \n";
} else if ( $processID ) {
exit;
} else {
}
if ( posix_setsid() == -1 ) {
echo "\n Error: Unable to detach from the terminal window. \n";
}
$posixProcessID = posix_getpid();
$filePointer = fopen( "/var/run/addy.pid" , "w" );
fwrite( $filePointer , $posixProcessID );
fclose( $filePointer );
gc_enable();
while (true) {
sleep(1);
print "debug: memory_get_peak_usage: ".memory_get_peak_usage()." debug: memory_get_usage: ".memory_get_usage()."\n";
// STUFF GOES HERE
unset($array);
gc_collect_cycles();
}
Спасибо за вашу помощь!