System_Daemon クラスを使用して、SMS を送信するデーモンを作成しています。
スクリプトは php 5.3.8 では完璧に動作しましたが、php 5.4.9 ではクラッシュしますが、エラーや通知メッセージは作成されません。
System_Daemon クラスの関数 _fork では、常に親であることを示す値を返します。
static protected function _fork()
{
self::debug('forking {appName} daemon');
$pid = pcntl_fork();
if ($pid === -1) {
// Error
return self::warning('Process could not be forked');
} else if ($pid) {
// Parent
self::debug('Ending {appName} parent process');
// Die without attracting attention
exit();
} else {
// Child
self::$_processIsChild = true;
self::$_isDying = false;
self::$_processId = posix_getpid();
return true;
}
}
したがって、_summon() 関数では、_fork() の戻り値について尋ねるところ、常に false に等しくなります。
同様の問題を抱えている別のメンバーからのこの投稿を赤くしました: PHP Pear system_daemon doesn't fork
私は彼の提案をしましたが、成功しませんでした。
誰か、これを手伝ってくれませんか?
私の英語についてとても申し訳ありません、私は自分自身を説明するために努力しました.