プロセス管理でよく使用するコマンドをまとめてみました。
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コマンドなどは、暴走プロセスでシステムが一杯一杯の時にコマンド一発で暴走プロセスを殺せるので便利です。