PHP-автоматическая перезагрузка демона при сбое - PullRequest
0 голосов
/ 24 января 2011

У меня есть 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();
    }

Спасибо за вашу помощь!

1 Ответ

3 голосов
/ 24 января 2011

Один из способов - создать BASH-скрипт, который будет запускать ваш демон.

#!/bin/bash

while [ 1 ]; do
  ./my_php_daemon
done

Затем просто выйдите из своего php-демона, когда вы захотите его перезапустить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...