Ubuntuで特定のプロセスをモニタリングする方法

Ubuntuで特定のプロセスをモニタリングする方法

この記事では、Ubuntuで特定のプロセスをモニタリングする方法を紹介します。システムのパフォーマンスや特定のアプリケーションの動作を監視する際に役立つ技術です。

プロセスIDを取得する方法

まず、特定のプロセスをモニタリングするためには、そのプロセスのID(PID)を知る必要があります。pidofコマンドを使用して特定のプロセスのPIDを取得できます。

pidof プロセス名

例えば、apache2というプロセスのPIDを取得する場合は次のようにします。

pidof apache2

topコマンドを使ったリアルタイムモニタリング

topコマンドは、リアルタイムでシステムのプロセス状況を表示するツールです。特定のプロセスを監視するには、topコマンドの出力をフィルタリングします。

top -p PID

htopを使った視覚的モニタリング

htopは、topの機能を視覚的に強化したツールです。htopをインストールして使用すると、より直感的にプロセスの状態を監視できます。

sudo apt-get install htop
htop

htopを起動したら、F3キーでプロセスを検索し、必要なプロセスを探します。

watchコマンドを使った定期的なプロセス監視

psコマンドとwatchコマンドを組み合わせることで、特定のプロセスを定期的にチェックすることができます。

watch -n 2 "ps -p PID -o %cpu,%mem,cmd"

これにより、2秒ごとにプロセスのCPU使用率とメモリ使用率を確認できます。

プロセスのログを取得する方法

プロセスの挙動を詳しく分析するために、straceを使用してシステムコールを追跡することができます。

sudo strace -p PID -o output.log

output.logファイルにプロセスのシステムコールの詳細が記録されます。

シェルスクリプトで自動モニタリング

特定のプロセスを継続的に監視し、異常があれば通知するシェルスクリプトを作成することもできます。

#!/bin/bash
while true; do
if ps -p PID > /dev/null; then
echo "プロセスが動作中です"
else
echo "プロセスが停止しました" | mail -s "プロセス停止" <a rel="noopener">user@example.com</a>
break
fi
sleep 60
done

このスクリプトをcronで実行し、プロセスの監視を自動化することが可能です。