読者です 読者をやめる 読者になる 読者になる

LPIC プロセス管理周り

psコマンド

言うまでもなし。-を付けないオプションの利用が推奨されている。

  • a : 他のユーザーのプロセスも表示
  • u: 実行ユーザー名も表示
  • x : デーモンも表示

自分が起動しているプロセスを表示

$ ps
 PID TTY          TIME CMD
21902 pts/4    00:00:00 bash
24919 pts/4    00:00:00 ps 

システム上のすべてのプロセスを表示

$ ps ax | head
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:01 /sbin/init
    2 ?        S      0:00 [kthreadd]
    3 ?        S      0:00 [migration/0]
    4 ?        S      0:03 [ksoftirqd/0]
    5 ?        S      0:00 [migration/0]
    6 ?        S      0:02 [watchdog/0]
    7 ?        S      2:35 [events/0]
    8 ?        S      0:00 [cgroup]
    9 ?        S      0:00 [khelper]

topコマンド

継続的にプロセスの監視が行える。

$ top
top - 04:05:56 up 3 days, 14:41,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  79 total,   1 running,  78 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    502412k total,   218252k used,   284160k free,    40980k buffers
Swap:  1015800k total,     2032k used,  1013768k free,    70612k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1160 kisho     20   0 28436 4064 1080 S  0.3  0.8   4:09.49 tmux
24923 kisho     20   0 15020 1272  988 R  0.3  0.3   0:00.03 top
    1 root      20   0 19228  988  808 S  0.0  0.2   0:01.13 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    4 root      20   0     0    0    0 S  0.0  0.0   0:03.90 ksoftirqd/0
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    6 root      RT   0     0    0    0 S  0.0  0.0   0:02.30 watchdog/0
    7 root      20   0     0    0    0 S  0.0  0.0   2:35.93 events/0
    8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup
    9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper
   10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns
   11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr
   12 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm
   13 root      20   0     0    0    0 S  0.0  0.0   0:03.98 sync_supers

pstreeコマンド

プロセスの親子構造を木構造で表示

$ pstree
init─┬─auditd───{auditd}
     ├─crond
     ├─dhclient
     ├─fastcgi-wrapper
     ├─master─┬─pickup
     │        └─qmgr
     ├─6*[mingetty]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd───sshd───sshd───bash───tmux
     ├─tmux─┬─2*[bash───su───bash]
     │      ├─bash───vim
     │      └─bash───pstree
     └─udevd───2*[udevd]

killコマンド

プロセスを停止するときに利用。kill -lでシグナル名とシグナルIDが確認できる以下は主なシグナルIDとシグナル名

シグナル名 シグナルID 動作
HUP 1 ハングアップ
INT 2 Ctr + C
KILL 9 強制終了
TERM 15 終了(デフォルト)
CONT 18 停止しているプロセスの再開
STOP 19 一時停止

killallコマンドではプロセスIDではなく、プロセス名でkillができる。

jobコマンド

コマンド&として実行したコマンドはバックグラウンドで動く。

$ yum check-update
$ jobs 
[1]+  Running                 yum check-update &

nohup コマンド

nohungup sshをログアウトしてもコマンドを実行し続けてくれる。これは便利。

$ nohup コマンド&

bg,fgコマンド

そのまんま。

niceコマンド

コマンド実行時の優先度指定nice値が低いほど優先度が高いことに注意(-20~19)

実行優先度を10低くする。

#nice -n -10 コマンド

負数を指定できるのはrootのみ

reniceコマンドで実行中のプロセスの優先度を変更できる。