反応しなくなったウェブサーバの再起動
それでは以上のようなコマンドを実際的な問題の解決にどのように使用するのかという一例を見てみよう。ウェブサーバが反応しなくなり再起動が必要となっていることに気付いたら、まずはserviceコマンドを試してみよう。ウェブサーバの起動/停止用のスクリプトが実行され、ウェブサーバを再起動することができるはずだ。CentOS 5上のApacheの場合には以下のように実行する。
service httpd restart
上記が失敗したら次に、ウェブサーバのプロセスを強制終了させるために、killallコマンドを試してみよう。
killall -9 httpd
その後、psを実行してApacheのサービスがすべて終了したことを確かめよう。
ps aux | grep httpd
まだ終了しないプロセスが残っていた場合には、killコマンドを使用して一つ一つ強制終了させよう。最後に以下のようにしてウェブサーバを再開すればよい。
service httpd start
最近友人に、fetchmailプロセスに関する問題が起こったという。fetchmailは、外部のメールサーバからメールを取得してローカルのサーバに受け渡すためのプログラムだ。ある朝彼は自分のシステムが低速になっていることに気付いた。topコマンドで素早く確認したところ、fetchmailのプロセスがシステムメモリの99%を使用していたことが分かった。そこでfetchmailプロセスのPIDを調べて、fetchmailプロセスを終了させ、serviceコマンドを使用して再起動した。その結果メモリが解放されて、システムが生き返ったとのことだ。
まとめ
異常な動作をしているプロセスがないことを確実にするために、システムを監視するようにしよう。そのための簡単な方法の一つとして、端末ウィンドウでtopコマンドを常時実行しておくという方法がある。そうしておけば、すべてが順調に動いていることを時折素早く確認することができる。また実際に何かがおかしくなり始めた場合にも、Linuxにはプロセスを停止して再開させるための便利なツールがあるので、システム全体の再起動はまれにしか必要にはならないだろう。
Gary Simsはイギリスの大学でビジネス情報システムの学位を取得しており、ソフトウェアエンジニアとしての経験が10年ある。現在はフリーランスのLinuxライター/コンサルタント。
