プロセス管理でよく使用するコマンドをまとめてみました。
psコマンドで表示します。Solarisには、SystemV系の/usr/bin/psとBSD系の/usr/ucb/psが用意されています。
よく使うオプションは、前者は-efや-efl、後者は-auxwwくらいだと思います。/usr/ucb/psの良いとことは、CPU使用率(%CPU)、メモリ使用率(%MEM)、ステータス(S)が一目で分かるところです。リソースを食い潰しているプロセスはないか、ゾンビプロセス(ステータスがZ)はないかをチェックし、有るようならkillコマンドで殺しましょう。
# /usr/ucb/ps -auxww --- USER PID %CPU %MEM SZ RSS TT S START TIME COMMAND root 140 0.0 1.4 3800 1648 ? S 10月 10 0:00 /usr/sbin/syslogd root 142 0.0 1.1 2168 1280 ? S 10月 10 0:13 /usr/sbin/cron root 156 0.0 4.1 9576 4912 ? S 10月 10 0:55 /usr/sbin/nscd ・・・
killコマンドでプロセスへシグナルを送信します。よく使うものは以下の通りです。
プロセス停止。シグナル番号を省略するとデフォルトで、-15(-TERM)が指定されています。
# kill <pid>
プロセス強制終了。-9(-KILL)を指定します。
# kill -9 <pid>
プロセス再起動。-1(-HUP)を指定します。
# kill -1 <pid>
/usr/proc/bin配下には、プロセスに関する便利なコマンドがあります。パスを通しておいてもいいでしょう。
と言っても、よく使うコマンドは、ptree、pwdxくらいですが。これらのコマンドは、プロセスの情報などを格納している/proc配下のファイルを参照します。
| コマンド | 用途 |
|---|---|
| pcred | プロセスに関する実効UID/GIDや実UID/GIDを表示する。 |
| pfiles | プロセスが開いているファイルに関する情報を表示する。 |
| pflags | シグナル情報を表示する。 |
| pldd | プロセスが使用しているライブラリを表示する。 |
| pmap | プロセスのアドレス空間を表示する。 |
| prun | プロセスを再起動する。 |
| psig | シグナルの動作を表示する。 |
| pstack | スタックトレースを表示する。 |
| pstop | プロセスを停止する。 |
| ptime | プロセスの実行時間を表示する。 |
| ptree | プロセスツリー(親子関係)を表示する。 |
| pwait | プロセスが終了するまで待機する。 |
| pwdx | そのプロセスの作業ディレクトリを表示する。 |
ptreeコマンドでプロセスツリー(親子関係)を表示します。
# ptree
---
59 /usr/lib/sysevent/syseventd
68 /usr/lib/picl/picld
133 /usr/sbin/inetd -s
140 /usr/sbin/syslogd
142 /usr/sbin/cron
166 /usr/lib/utmpd
156 /usr/sbin/nscd
202 /usr/local/apache/bin/httpd
28082 /usr/local/apache/bin/httpd
28083 /usr/local/apache/bin/httpd
28081 /usr/local/apache/bin/httpd
28085 /usr/local/apache/bin/httpd
28084 /usr/local/apache/bin/httpd
28086 /usr/local/apache/bin/httpd
28087 /usr/local/apache/bin/httpd
1463 /usr/local/apache/bin/httpd
1464 /usr/local/apache/bin/httpd
248 /usr/local/sbin/sshd
21231 /usr/local/sbin/sshd
21233 /usr/local/sbin/sshd
21235 -csh
pwdxコマンドでそのプロセスの作業ディレクトリを表示します。
# pwdx 26689 --- 26689: /export/home
pkillコマンドとpgrepコマンドは、引数にプロセス文字列(正規表現可)を使用できます。あまり使ったことはありませんが、pkillコマンドなどは、暴走プロセスでシステムが一杯一杯の時にコマンド一発で暴走プロセスを殺せるので便利です。