「Linux」でのトラブルシューティングで知っておくべきコマンド5選
3. ps 筆者にとって、psはほかのコマンドへの入口である。psコマンドは、現在のプロセスのスナップショットを表示する。psを使用して、実行中のすべてのプロセスを一覧表示したり、grepに渡して特定のプロセスだけを一覧表示したりすることも可能である。 それでは、psはどういうときに役に立つのだろうか。 クラッシュして、閉じられないアプリケーションがあるとしよう。ウィンドウの右上(または左上)にある小さな「X」をクリックしても、閉じることができない。最初にすべきなのは、問題への対処を開始できるように、そのプロセスのPIDを見つけることだ。ここでpsが役に立つ。ただし、ps自体はあまり役に立たない。それは、なぜだろうか。psコマンドだけを実行しても、使用している端末に関連するプロセスしか表示されないからだ。代わりに、以下の特定のオプションを使用する必要がある。 ps aux a - すべてのプロセス。 u - psを実行しているユーザーが所有するプロセス。 x - 端末から起動されていないアプリケーションを出力。 このコマンドは、大量の情報を出力し、多数の列に分類して表示する。複数の列があるが、注目すべきなのはPIDとCOMMANDだ。これら2つの列の情報をチェックすれば、問題の原因となっているプロセスのIDを見つけることができる。そのプロセスを見つけたら、強制終了することが可能だ。 ps auxの出力が多すぎる場合は、その出力をgrepにパイプして、特定のプロセスだけを表示させるといい。例えば、「LibreOffice」が問題を引き起こしているとしよう。以下のコマンドを実行して、LibreOfficeに関連するプロセスだけを一覧表示させることが可能だ。 ps aux | grep libreoffice 4. kill killコマンドは非常に強力だ。クラッシュして、どうしても閉じられない(または、クラッシュしてはいないが、大量のメモリーを消費している)厄介なアプリケーションがある場合、killコマンドを使えば、強制的に閉じることができる。 ただし、killコマンドを使用するには、対象となるアプリケーションのPIDを最初に確認しておく必要がある(この情報は、ps auxコマンドで見つけることが可能だ)。正常に動作していないLibreOfficeアプリケーションのPIDが604187であるとしよう。そのプロセスを強制終了するには、以下のコマンドを実行する: kill 604187 これで、アプリが閉じて、別の作業に移れるはずだ。 5. systemctl systemctlコマンドは、アプリケーションの起動と停止だけでなく、トラブルシューティングにも役立つ。例えば、Sambaが正常に動作していない場合は、以下のコマンドを実行してみよう。 systemctl status smbd 上記のコマンドを実行すると、Sambaが実行中かどうか、SambaのPID、関連するタスクの数、使用しているメモリーとCPUの量、Sambaが属するcgroupsなどが表示される。さらに素晴らしいことに、プロセスに問題がある場合、systemctlは(通常、journalctlの助けを借りて)、問題のトラブルシューティングを進めるのに必要な情報も提供してくれる。 説明は以上である。これら5つのコマンドは、Linuxのトラブルシューティングを始めたいときに最適だ。確かに、利用できるツールはほかにもたくさんあるが、Linuxを始めたばかりの人は、とりあえずこれらのコマンドを知っておくといいだろう。 この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。