さくらインターネット サポート

CGI等の動作不良プログラムを強制終了させる

Telnetを経由し、コマンドラインから誤作動を起こしたプログラムを強制終了します。

「プログラムの強制終了」とは

今までCGIプログラムとしてなんら問題なく起動していたプログラムであっても、 何かの拍子に誤作動を起こして、少しずつ問題が表面化してくることがあります。
普通であれば、プログラムが起動して、処理を終えたらプログラムを終了させるのですが、 誤作動を起こしてしまった実行プロセスは、そのままサーバ上に居座ってしまい、 不良プロセスとして、終了せずにどんどん蓄積してしまいます。

特に共有サーバでは、複数のユーザが同居していますので、一部のユーザが他のお客様のサーバ資源を占有してしまう事が無いよう、 1ユーザあたりの使用量を制限しており、、許容量を超えた不良実行プロセスが蓄積してしまうと実行エラーが発生してしまいます。

ここで紹介するのは、不良プロセスの発見方法と、強制終了を行う方法です。


動作プロセスの確認[ps]

  1. Telnetでサーバにログインします。
    ログインの仕方についてはこちらをご覧ください。

  2. 【現在サーバ上で動作しているプロセス】を確認します。

    入力コマンドは 「 ps (スペース) -ux 」 です。

    コマンドを実行すると以下のように現在サーバで動作しているプロセスのレポートが表示されます。


     ( 一部プロセスを省略しています。)

    表示されたレポートから動作不良のプロセスを探します。
    実行時間(TIME)や、実行開始時間(STARTED)から長時間経っているものが対象となります。

      【表示の見方】
      ・ USER このプログラムを動かしているユーザ名です。
      ・ PID プロセスID。このプロセスの識別番号です。
      ・ STARTED このプログラムの実行開始時刻です。
      ・ TIME このプログラムが動作している時間です。
      ・ COMMAND 動作しているプログラム名です。

  3. 不良動作プロセスを削除します。
    今度は、「PID(プロセスID)」に着目してください。これは、動作しているプログラムの識別番号です。
    この番号を指定して動作プロセスを削除します。

    kill」コマンドの後に、スペース区切りでPIDを入力し、 Enter Key を押してください。


  4. もう一度「ps」コマンドを使用して、プロセスが 強制終了しているか確認します。
    強制終了を行ったプロセスが表示されていなければ、作業は完了です。