忍者ブログ
Admin / Write / Res
ちゃんとカテゴリ分けされておりませんので、 記事をお探しならブログ内検索が便利です。 ご活用くださいませー+.(≧∀≦)゚+.゚
ブログ内検索
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
カウンター
アクセスカウンター
最新コメント
[02/13 LarrylyclE]
[02/07 Cazraso]
[01/31 JamesLor]
[01/30 JamesLor]
[01/30 JamesLor]
最新トラックバック
プロフィール
+ハンドル+
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
バーコード
[648]  [647]  [646]  [645]  [643]  [642]  [641]  [640]  [639]  [638]  [637
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

おそらくPHPに限ったことではないのだけど。
プログラムの中でバックグラウンドプロセスを生成したいケースはよくあること。
PHPが正式にCLIに対応した5系以降であれば、利用シーンはあると思います。

しかし、一度バックグラウンドへプロセスを投げてしまうと普段フォアグランドで作業する我々にはその処理を追いにくくなります。
特に、デバッグが不完全なプログラムで無限ループを生成してしまうと、ゾンビプロセスそのものです。
しかも通常のゾンビと違いリソースを食うのですから、ザ・ハウス・オブ・ザ・デッドのようです。

jobsコマンドで発見出来ないので、今ひとつ制御が難しいですが、
PHPで何が何だか分からなくなったら、killしてしまうのも良いかもしれませんね。

killall php

ただ、運用中のサーバだと・・・
正直通常バッチプロセスなのか、バックグラウンドで迷子になっているプロセスなのかわからないんですよね。。。
こうならないように自由にできる環境で十分に試験は行いたいものです^^


拍手


例:無駄プロセスを生成するPHPソース。

main.php
<?php
  $cmd = "/usr/local/bin/php /root/sub.php &";
  for($i=1; $i=10; $i++){
    `$cmd` ;
  }
?>



sub.php
<?php
  while(true){
    sleep(5);
  }
?>



PR
この記事にコメントする
Name
Title
Color
Mail
URL
Comment
Password   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret (管理人にのみ表示)
この記事へのトラックバック
この記事にトラックバックする:
Copyright ©  アナログを愛するデジタル生活館 All Rights Reserved.
* material by Pearl Box   * Template by tsukika

忍者ブログ [PR]