問題タブ [pcntl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
573 参照

php - PCNTL - 現在の子の終了時に新しい子プロセスをフォークする

次のフローを持つコードを作成しました。

PCNTL を使用して、データをポーリングして何らかのアクションを実行する 2 つのプロセスを同時に実行しています。要件は、プロセスが ID を処理したときに停止し、新しいプロセスを開始して、新しい ID を再度ポーリングして処理することです。

最後の行??????で、再度 (再帰) を呼び出すことができますprocess_callback()が、システムのメモリが増加しませんか? そのため、このプロセスを終了させて​​、これを再度呼び出す新しいプロセスを作成することをお勧めしますprocess_callback

0 投票する
1 に答える
451 参照

php - PHP pcntl_fork() : ブラウザーでコードを失う

pcntl を使用して PHP で bigpipe を実装したいと考えています。しかし、ブラウザから Web ページにアクセスすると何か問題があります。

test.php

シェルでコマンド「php test.php」を入力すると、正しい出力が得られます。

しかし、ブラウザーでアクセスすると、ページのソースは予期しないものです。

残りのコードが消えたのはなぜですか?

0 投票する
2 に答える
8512 参照

php - Apache で pcntl_fork() を使用するには?

これは私のコードですindex.php(ほんの一例です):

このスニペットは、コマンド ラインで正常に動作します。Apacheexit()では、親プロセスと子プロセスの両方が強制終了されます。回避策とは何ですか?

0 投票する
2 に答える
1704 参照

php - MAMP 2.1.1 (Mac OS X ライオン) での pcntl インストールの問題

pcntl のインストールに問題があります。私の PHP バージョンは 5.4.4 です。次のチュートリアルに従いました: http://cyberpunx.com/2011/11/pcntl-so-on-osx-lion-and-mamp/

しかし、Pcntl は読み込まれません。PHPエラーログに次のように表示されます:

[2012 年 9 月 4 日 22:58:16 UTC] PHP 警告: PHP の起動: pcntl: モジュールを初期化できません モジュール API=20090626 でコンパイルされたモジュール モジュール API=20100525
でコンパイルされた PHP これらのオプションは一致する必要があります

どうすれば pcntl を正しくコンパイルできますか? ご協力ありがとうございました!

0 投票する
1 に答える
677 参照

php - PHP、PCNTL、および共有メモリ内のキュー

PHPでの共有メモリの実装に問題があります。共有メモリにキューを作成することは可能ですか?

コードはここにあります:

...この時点で、アイテム(intまたは非常に短い文字列)をキューに追加するにはどうすればよいですか?それも可能ですか?

0 投票する
3 に答える
8209 参照

php - PHP pcntl_signal コールバックが呼び出されない

これは完全に再現可能なコードです。

これを実行すると、毎秒日付の値が表示されます。Ctrl+Ccleanup関数を押しても呼び出されません。実際signal_handlerには呼び出されません。

出力例を次に示します。

0 投票する
1 に答える
1139 参照

php - pcntl_sigwaitinfo とシグナルハンドラ

私は定期的にいくつかの作業を行い、それを繰り返す前にしばらくスリープするデーモンを書いています。ただし、スリープ中も外部からの影響 (つまり、終了要求) に応答する必要があります。

ALRM シグナルでスリープ タイムアウトを実装し、TERM シグナルで終了を実装することができました (サンプル):

しかし、神のために、なぜシグハンドラーが呼び出されないのかわかりません。次の出力が得られます。

同時に、このハンドラーを設定しないと、アンハンドラー シグナルが原因でスクリプトが停止します。

私は何かが欠けていますか?シグナル ハンドラ関数が呼び出されないのはなぜですか? pcntl_sigwaitinfo() が干渉していますか?

また、タイムアウトとシグナル処理を同時に実装する他の手段はありますか?

0 投票する
1 に答える
209 参照

php - PHP で大量の IP アドレスを解決する

大量の IP アドレスを解決する必要があります。それに使っgethostbyaddr()ています。

私は最近、使用について読んだばかりでpcntl_fork()、フォークを行う場合、タイムアウトを待つ必要はありません。

gethostbyaddrタイムアウトする前にホストを解決するには長い時間 (30 秒だと思います) がかかるため、大量の IP アドレスで使用するのは実用pcntl_fork的ですか?

0 投票する
0 に答える
184 参照

php - PHPでフォークされたプロセスに参加する方法

プロセスをフォークする必要がある場所。次に、タスクが完了すると、親プロセスは先に進み、他の作業を行う必要があります。これはどのように行うことができますか?これが私がやったことです

このコードスニペットでプログラムを実行すると、この出力が得られます...

しかし、印刷完了カウント 5 の後、プログラムがハングしているようです。プロンプトに戻りません。すべての子プロセス (フォークされたプロセス) が終了したことを理解したところで、次の実行を再開するにはどうすればよいでしょうか?

0 投票する
0 に答える
366 参照

php - php 5.4.9 を使用する centos の System_Daemon と pcntl

System_Daemon クラスを使用して、SMS を送信するデーモンを作成しています。

スクリプトは php 5.3.8 では完璧に動作しましたが、php 5.4.9 ではクラッシュしますが、エラーや通知メッセージは作成されません。

System_Daemon クラスの関数 _fork では、常に親であることを示す値を返します。

したがって、_summon() 関数では、_fork() の戻り値について尋ねるところ、常に false に等しくなります。

同様の問題を抱えている別のメンバーからのこの投稿を赤くしました: PHP Pear system_daemon doesn't fork

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

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

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