hajichan.net technical version
トップページ >> サーバ管理(Solaris) >> プロセス管理コマンド

サーバ管理

プロセス管理コマンド

プロセス管理でよく使用するコマンドをまとめてみました。

プロセス表示

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>

procツール

/usr/proc/bin配下には、プロセスに関する便利なコマンドがあります。パスを通しておいてもいいでしょう。

と言っても、よく使うコマンドは、ptree、pwdxくらいですが。これらのコマンドは、プロセスの情報などを格納している/proc配下のファイルを参照します。

【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コマンドとpgrepコマンドは、引数にプロセス文字列(正規表現可)を使用できます。あまり使ったことはありませんが、pkillコマンドなどは、暴走プロセスでシステムが一杯一杯の時にコマンド一発で暴走プロセスを殺せるので便利です。

ページのトップへ戻る