高度なプロセス管理
Linux では、基本的な ps
コマンドや kill
コマンド以外にも、プロセスを管理するための追加コマンドが用意されています。これらのツールを使うと、プロセスの特定や終了をより柔軟かつ便利に行うことができます。
pgrep
コマンド
pgrep
コマンドを使うと、ps
コマンドの出力を目視で確認する必要なく、プロセスを名前で検索できます。
pgrep sleep
このコマンドは、名前に "sleep" が含まれるすべてのプロセスを検索し、その PID を出力します。
pkill
コマンド
pkill
コマンドは、pgrep
と kill
の機能を組み合わせたものです。プロセスを名前で検索し、それにシグナルを送信します。
## Start two sleep processes
sleep 300 &
sleep 300 &
## Kill all sleep processes
pkill sleep
すべての sleep
プロセスが終了したことを確認しましょう。
ps | grep sleep
killall
コマンド
killall
コマンドは、pkill
と同様に、プロセスを名前で終了させます。
## Start two more sleep processes
sleep 300 &
sleep 300 &
## Kill all sleep processes
killall sleep
もう一度確認しましょう。
ps | grep sleep
nice
と renice
を使ったプロセスの優先度設定
Linux では、nice
コマンドと renice
コマンドを使って、プロセスの優先度を制御することもできます。
まず、優先度を下げてプロセスを起動してみましょう。
nice -n 10 sleep 300 &
nice
値は -20(最高優先度)から 19(最低優先度)の範囲で設定できます。デフォルト値は 0 です。負の nice
値を設定できるのは root ユーザーのみです。
renice
コマンドを使って、プロセスの優先度を変更することもできます。
sleep_pid=$!
echo "Sleep process ID with lower priority: $sleep_pid"
renice -n 15 -p $sleep_pid
新しい優先度を確認しましょう。
ps -o pid,nice,cmd -p $sleep_pid
最後に、このプロセスを終了させます。
kill $sleep_pid
これらのプロセス管理コマンドを使うと、複数のプロセスを効率的に管理し、システムリソースを制御することができます。特に、繁忙なシステムやパフォーマンスの問題をトラブルシューティングする際に便利です。