UNIXやLinuxのコマンドに関する世界観(応用2.プロセス)です。
[改訂第3版]Linuxコマンドポケットリファレンスを参考にしています。
psはプロセス状態を表示するコマンド。UNIXオプション、BSDオプション、GNUロングオプションの三種類のオプションがある。killと一緒に使う。
ps [オプション]
普通は、
オプション | 説明 |
---|---|
ps ax | すべてのプロセスを表示。 |
ps aux | CPU・メモリ使用量を含めて表示。 |
とすることが多い。
ps aux
ほかに
オプション | 説明 |
---|---|
r | 実行中のプロセスを表示。 |
-u ユーザ名 | ユーザ名やユーザIDで抽出。 |
など、さまざまなオプションがある。
(最新 Debian GNU/Linux 完全攻略ガイド(天野正樹)を参考に執筆しました。)
詳しくはmanを参照してほしい。
2024.10.06編集
表示項目については、
表示項目 | 説明 |
---|---|
PID | プロセスID |
TTY | 端末名 |
TIME | 利用CPU時間 |
CMD | 実行ファイルの名前 |
となる。
psコマンドにTオプションを付けると、STAT(プロセスの状態)が表示される。この状態は以下のようになる。
状態 | 説明 |
---|---|
D | スリープ(割り込み不可能) |
R | 実行中・実行可能 |
S | スリープ(割り込み可能) |
T | トレース中・停止中 |
Z | ゾンビ(死亡して親プロセスに回収されなかった状態) |
状態の付加情報として、
付加情報 | 説明 |
---|---|
s | セッションリーダー |
l | マルチスレッド化されているプロセス |
+ | フォアグラウンドプロセス |
< | 優先度が高い |
N | 優先度が低い |
となる。
(「[改訂第3版]Linuxコマンドポケットリファレンス」を参考に執筆しました。)
2024.10.06編集
psのその他のオプションとして、
オプション | 説明 |
---|---|
e | 環境変数とコマンド名を表示。 |
u | CPUやメモリの使用量を表示。 |
l | 実行状態などを表示。 |
f | 階層的に表示。 |
p | プロセスIDを表示。 |
などのオプションがある。以下のページが参考になる。
2024.10.06編集
killはプロセスにシグナルを送るコマンド。
kill [オプション] プロセスID
オプションは
オプション | 説明 |
---|---|
-s シグナル | 送信するシグナルを指定 |
-l シグナル | シグナルを一覧で表示。 あるいはシグナルIDの表示(シグナル名を指定した場合)。 |
たとえば、
$ kill -l (シグナルの一覧が表示される) $ kill 4444 (シグナルを送る)
-sで送信するシグナルを指定できる。何も指定しなかった場合はデフォルトで15(SIGTERM)が送信される。
上の例ではプロセスIDが4444のプロセスにSIGTERMを送信して強制終了させている。
(「[改訂第3版]Linuxコマンドポケットリファレンス」を参考に執筆しました。)
niceは実行する際の優先度(NICE値)をつけてコマンドを実行するコマンド。
nice [オプション] [コマンド]
オプションは「-n NICE値」でNICE値を指定して実行する。
NICE値は「-n 15」のように指定する。-20が最高優先度、19が最低優先度となる。niceコマンドを使わずに通常の方法でコマンドを実行した場合のNICE値は0で、NICE値を設定せずにオプションなしでniceコマンドを実行した場合はNICE値10となる。また、負の数のNICE値はrootユーザーにしか設定できない。
(「[改訂第3版]Linuxコマンドポケットリファレンス」を参考に執筆しました。)
また、reniceで優先度を変更できる。
renice NICE値 [オプション]
オプションは「-n NICE値」「-g グループ名」「-u ユーザー名」「-p プロセスID」。オプションを指定した場合はプロセスをまとめて指定できる。
たとえば、
renice -n 5 1111 1112
とすれば、実行中のプロセス1111と1112に対してNICE値を5にすることができる。
(「[改訂第3版]Linuxコマンドポケットリファレンス」を参考に執筆しました。)
プロセスの状況を表示する。
プロセスの親子関係を分かりやすくツリー表示してくれる。
プロセスにシグナルを送信する。
killallを使うと、プロセスを殺す時に、killのようなプロセスIDではなく、プロセスの名前で指定できる。同じ名前のプロセスは全部死ぬ。
killを使うよりも使いやすいが、別のプロセスまで一緒に殺さないように注意しよう。
freeは、メモリの使用状況を表示する。利用しているメモリや空きメモリを表示する。
vmstatは、仮想メモリやブロック、iostatはI/Oの状況をモニタリングできる。
vmstat、iostat、mpstat、ifstatは、サーバーのリソースをリアルタイムで表示・モニタリングするのに使えるが、それぞれひとつの種類のリソースしか表示できない。
すべての状況をひとつのターミナルで見たい時は、dstatを使う。
プロセスの状況をリアルタイムでモニタリングできる。Windowsでいうタスクマネージャと同じ。
プロセスの実行優先度を指定・変更。
そのほか、
コマンド | 説明 |
---|---|
pgrep | プロセスIDを表示。 |
pkill | プロセスにシグナルを送信。 |
pidof | 実行中のプロセスのプロセスIDを表示。 |
time | コマンドの実行時間・リソース使用時間を表示。 |
nohup | シグナルを受け付けずにコマンドを実行。 |
at | 予定した時刻にコマンドを実行。 |
などのコマンドがある。
(「[改訂第3版]Linuxコマンドポケットリファレンス」を参考に執筆しました。)
2024.10.06編集
以下のページ・書籍が参考になります。
Linuxネットワーク(モニタリング)も参照のこと。
Linuxカーネル(シグナル)も参照のこと。