1

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

私は彼の提案をしましたが、成功しませんでした。

誰か、これを手伝ってくれませんか?

私の英語についてとても申し訳ありません、私は自分自身を説明するために努力しました.

4

0 に答える 0