さくらインターネットのレンタルサーバーのOSはFreeBSDですが、
たとえば、自サイトのCGIの負荷が高くなるとホームページが開かなくなります。
個人のページなので、強制的にプロセスを削除するスクリプトをperlやシェルスクリプトで書きたいのですが、どのように書けばよいでしょうか?
topとすると、
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
23981 test 1 4 0 16180K 13144K select 0 0:00 0.00% perl5.8.
これをスクリプトで削除する方法です。
人間が見ればCOMMANDがperl5.8.となっているので、これがcgiでPIDは23981なので
kill -9 23981とすればよいのはわかりますが、
スクリプトで実行する方法が知りたいです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> 人間が見ればCOMMANDがperl5.8.となっているので、これがcgiでPIDは23981なので
> kill -9 23981とすればよいのはわかりますが、
どうしようもない異常な状態で行うなら仕方ありませんが、そうでないのに kill -9(kill -KILL)は避けた方が良いです。
ゾンビになっても適当に再起動できるコンピュータなら良いですが。
CGIプログラムに非同期終了させる機能を入れてはいかがでしょうか。
例えば、SIGUSR1が送られたら、exit終了する様なシグナル処理を入れておけば、kill -USR1 23981で終了させる事ができます。
> スクリプトで実行する方法が知りたいです。
シェルスクリプトでしょうか、perlスクリプトでしょうか。
使いたいスクリプティング言語の種類が分からないのでなんとも答えにくいですが、大抵の言語に機能は備わっているはずですよ。
シェルスクリプトならkillコマンドを使えば良いでしょうし、perlやC言語などならkill関数を使う事やsystem関数などのコマンドを実行できる関数や機能を使ってkillコマンドを実行するなどの方法で実現できるかと思います。
強制的なプロセスのシグナル停止ではない方法も平行してお調べになってはいかがでしょうか。
ウェブサーバの設定(プロセス数などのリソース調整)で行えた方が良さそうな感じの問題に見えますので。
http://www.drk7.jp/MT/archives/001594.html
※ 高負荷になりすぎないように、起動するCGIプロセス数を制限してしまうのも一手法です。無理にKILLすれば、利用者が送信したデータが消えてしまったりもしますから。(シグナル処理で終了すれば、データを処理してから終了するようにプログラムを書く事もできますが)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TOPコマンドで表示するCPU使用...
-
プロセス、サービス、デーモン...
-
タスクマネージャのCPU率がおか...
-
プロセスが起動中かどうかを判...
-
アクロバットを終了しても、プ...
-
プロンプトが返らない
-
【プログラム】 iu14d2n.tmp ...
-
ときどきCPU使用率が100%になっ...
-
デーモンモードとは何でしょうか?
-
CPU100%使用の原因と改善
-
linuxでプロセスが動いているCP...
-
左下の広告が消えません。
-
タスクマネージャに表示されな...
-
ps コマンドのステータス。S Ss...
-
コマンドライン上でファイルを...
-
fork1()とfork()の違い
-
セグメンテーション・フォールト
-
強制終了できないプロセスの強...
-
タスクマネージャーでプロセス...
-
CentOSのserviceコマンドについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TOPコマンドで表示するCPU使用...
-
コマンドライン上でファイルを...
-
プロセス、サービス、デーモン...
-
タスクバーの音量アイコンをク...
-
System Idle Processってなに?...
-
プロンプトが返らない
-
Windowsで作れるスレッド最大数...
-
タスクマネージャのCPU率がおか...
-
プロセスがタスクマネージャー...
-
Powershell プロセス二重起動
-
httpdの子プロセスがゾンビ化す...
-
CPU使用率が常に50~10...
-
タスクマネージャで終了できな...
-
ps コマンドのステータス。S Ss...
-
【プログラム】 iu14d2n.tmp ...
-
Windowsで同時にオープンできる...
-
ときどきCPU使用率が100%になっ...
-
killコマンドの終了と強制終了...
-
強制終了できないプロセスの強...
-
Windows 10のエクスプローラー...
おすすめ情報