Linuxコマンドを基礎から学んでる猫だくさんです。
普段なんとなーく使っているLinuxコマンドについて復習しています。
各コマンドを復習していく中で意味を理解していないものが多く、これらのコマンドは一体どうやって覚えたんだろうという疑問がわきました。
今回はpsコマンドについて学んででいきたいと思います!
psコマンドとは
現在Linuxで実行されているプロセスの一覧を表示するコマンドです。
用途としてはLinuxの動作が遅いときなどに原因となるプロセスを探すときに使用します。
プロセスとは?
Linuxで動いているプログラムのことです。
プロセスはコマンドを実行することで生成され、役目を終えると破棄されます。
一方でシェルのプロセスは動いていないと困るので、端末を使用している間はメモリに保持されています。
試しに使ってみましょう
気軽に使えるLinux仮想環境Envaderを使用します。
早速シンプルにps
と打ってみます。
$ psコマンド
PID TTY TIME CMD
36 pts/1 00:00:00 bash
64 pts/1 00:00:00 ps
自分が現在実行しているプロセスが表示されました。
なんどなくCMD(コマンド)が表示されてるんだなってことがわかります。
psコマンドオプション
もう少し詳細な情報が欲しいですね。
詳しく表示するためにはオプションを指定します。
比較的よく使われる(と思われる)オプションは以下のとおりです。
Option | Description |
---|---|
-A | 全プロセスを表示する |
-a | 端末が操作しているプロセス表示 |
-u | 各プロセスのCPUやメモリの使用率を表示 |
-x | 現在実行しているプロセスを表示 |
-f | プロセスをツリー構造で見やすく表示 |
-p | 実行しているプロセスのPIDを指定して表示 |
-e | コマンド名の後に環境情報などの情報を表示 |
-l | プロセスを長いフォーマットで表示する |
-F | プロセスを完全なフォーマットで表示 |
これらのオプションを複合して使用することもできます。ps aux
などはよく使いますね。
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 1.7 0.0 17944 2672 ? Ss 15:59 0:00 /bin/bash /init.sh
root 12 0.0 0.0 69956 3020 ? Ss 15:59 0:00 /usr/sbin/sshd
root 13 0.0 0.0 702212 1040 ? Sl 15:59 0:00 /bin/secret
root 14 0.0 0.0 4220 692 ? S 15:59 0:00 tail -f
root 18 0.0 0.1 92728 6444 ? Ss 15:59 0:00 sshd: envader [priv]
envader 24 0.0 0.1 92728 4268 ? S 15:59 0:00 sshd: envader@pts/0
envader 25 0.0 0.0 19240 3336 pts/0 Ss+ 15:59 0:00 -bash
envader 33 0.0 0.0 18808 2860 pts/0 S+ 15:59 0:00 tmux new -s main
envader 35 0.0 0.0 27420 3136 ? Ss 15:59 0:00 tmux new -s main
envader 36 0.0 0.0 19480 3760 pts/1 Ss 15:59 0:00 -bash
envader 47 0.0 0.0 37784 3204 pts/1 R+ 15:59 0:00 ps aux
端末が操作しているプロセスと現在実行しているプロセス(デーモン等)についてCPUやメモリの消費率とともに出力されました。
情報の見方
それぞれの項目の意味を表にしてみました。
hedder | mean |
---|---|
USER | ユーザーの名前 |
PID | プロセスID |
%CPU | CPU使用率 |
%MEM | 実メモリ使用率 |
VSZ | 仮想分を含めた使用サイズ |
RSS | 実メモリ上の使用サイズ |
TTY | 端末名 |
STAT | プロセスの状態表示 |
START | プロセス開始時間 |
TIME | CPU累積使用時間 |
COMMAND | コマンド名 |
実の所半分も意味がわかっていませんw
さて、見慣れた画面ですがさらにps auxf
とf
オプションを追加してツリー表示すると更に視認性が良くなります。
$ ps auxf
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 17944 2672 ? Ss 15:59 0:00 /bin/bash /init.sh
root 12 0.0 0.0 69956 3020 ? Ss 15:59 0:00 /usr/sbin/sshd
root 48 0.0 0.1 92728 6676 ? Ss 16:12 0:00 \_ sshd: envader [priv]
envader 54 0.0 0.1 92860 4340 ? S 16:12 0:00 \_ sshd: envader@pts/0
envader 55 0.0 0.0 19240 3232 pts/0 Ss+ 16:12 0:00 \_ -bash
envader 63 0.0 0.0 18808 2816 pts/0 S+ 16:12 0:00 \_ tmux attach -t main
root 13 0.0 0.0 702212 1040 ? Sl 15:59 0:00 /bin/secret=071f1e2cba18ef808fbd5740eb7d3e45
root 14 0.0 0.0 4220 692 ? S 15:59 0:00 tail -f
envader 35 0.0 0.0 27420 3200 ? Ss 15:59 0:00 tmux new -s main
envader 36 0.0 0.0 19480 3636 pts/1 Ss 15:59 0:00 \_ -bash
envader 75 0.0 0.0 37784 3224 pts/1 R+ 16:37 0:00 \_ ps auxf
引用:プロセス管理 ー 1
各コマンドの関係性がわかりやすいですね。
※情報をツリー表示するコマンドとしてpstree
コマンドというものもあります。
これでプロセスの状況を把握してkillしたりすることができます。
killコマンドについてまとめました!
学んだこと
- psコマンドでプロセスの状態を把握する
- psコマンドで表示された情報の見方
今のところ表示したからなんじゃいって感じですが、後々多用することになる、ハズw
猫たちはそのへんで転がっています。
コメント