10. プロセス操作コマンド

 
10.1 %   ジョブの指定
10.2 &   バックグラウンドジョブの起動
10.3 jobs 現在のジョブ一覧を表示
10.4 stop バックグラウンドで動作中のジョブを一時停止
10.5 kill ジョブ(プロセス)へのシグナル送信
10.6 wait バックグラウンドジョブの終了を待つ
10.7 ps  実行中のプロセスを表示する

10.1 %

 ジョブ制御コマンド(stop、kill)では、以下の引数で制御ジョブを指定します。
指定したいジョブ引数
カレントジョブ (省略)
%+
%%
前のカレントジョブ %-
ジョブ番号のジョブ %ジョブ番号
起動コマンドの先頭文字列 %文字列
起動コマンドに含まれる文字列%?文字列

10.2 &

> コマンド &
 ジョブをバックグラウンドで実行するには、起動コマンドの最後に & をつけて入力します。  すると、ジョブがバックグラウンドで起動され、ジョブを識別するためのジョブ番号([] で囲まれた数字)と、直前に起動されていたプロセス番号が表示されます。シェルでのジョブ管理はジョブ番号を指定して行います。   例
> sleep 10 &
[2] 34137
[1]    Done                          sleep 10

10.3 jobs

> jobs [-l]
 現在のバックグラウンドジョブを一覧表示します。  各行には、次の情報が表示されます。
フィールド内容表示
1ジョブ番号[1]、[2]、[3]などの数字
2ジョブ記号+ カレントジョブ
- 前のカレントジョブ
(3)プロセス番号-l オプション時に表示
4ジョブの状態 Running バックグラウンド実行
Done バックグラウンド停止
5起動コマンドジョブが起動されたコマンド
  例
> sleep 10 &
[1] 34157
> sleep 10 &
[2] 34158
> sleep 10 &
[3] 34159
> jobs -l
[1]  + 34157 Running                       sleep 10
[2]  - 34158 Running                       sleep 10
[3]    34159 Running                       sleep 10
> jobs -l
[1]  + 34157 Done                          sleep 10
[2]  + 34158 Done                          sleep 10
[3]  + 34159 Done                          sleep 10

10.4 stop

 バックグラウンド実行状態のジョブをバックグラウンド停止状態にします。
> stop %ジョブ指定
  例
> sleep 10 &
[1] 34166
> stop %+
[1]  + Suspended (signal)            sleep 10
> jobs -l
[1]  + 34166 Suspended (signal)      sleep 10

10.5 kill

 指定されたプロセス(プロセスIDを指定)またはジョブへシグナル(デフォルトはTERM)を送ります。  送るシグナルによってはプロセスが停止されます。
> kill [シグナル指定] ジョブ指定またはプロセス指定
  例
> sleep 10 &
[2] 34181
> kill %+
[1]    Terminated                    sleep 10
 また
> kill -l
を行うとシグナルが一覧表示されます。   例
> kill -l
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2

10.6 wait

 バックグラウンドで実行中のジョブの終了を待ちます。
> wait
  例
> sleep 10 &
[3] 34188
[2]    Done                          sleep 10
> wait
[3]    Done                          sleep 10

10.7 ps

> ps [オプション]
 システムで実行中のプロセスに関する情報を表示します。  オプションには、以下のものがあります。
オプション内容
-a自分のプロセスに加え自分以外のプロセスも同様に表示します。
-u次のキーワードに関する情報を表示します。
user, pid, %cpu, %mem vsz rss, lim, tt, state, start, time, command
-xプロセス番号を表示します
-w端末の幅の制限によりコマンドの引数が全部見えないことがあります。そういうときに右端を折り返して表示します。-ww と重ね書きすればすべての引数が見えるようになります。
  例
> ps
  PID  TT  STAT      TIME COMMAND
34111  p0  Ss     0:00.89 -tcsh (tcsh)
34214  p0  R+     0:00.01 ps
 キーワードの意味を示します。
キーワード内容
%cpucpu 使用率(別名 pcpu)
%memメモリ使用率(別名 pmem)
commandコマンド名と引数
limメモリ利用のリミット
pidプロセス ID
re実メモリ常駐時間(秒単位:127 = 無限)
rss常駐セットサイズ
slプロセス番号
start開始時刻
state記号でのプロセスの状態(別名 pstat)
timeユーザ + システムの合計 cpu 時間(別名 cputime)
tt制御端末名(2 文字の省略形)
 プロセスの状態(state)は、次の文字列で表示します。例えば、"RWNA" の最初の文字は、プロセスが runnable 状態であることを示します。
文字列状態
Dディスク(あるいは他の割り込み不可能な短期間の)待ち状態
Iidle 状態(20秒以上 sleep している)
Jjail 中のもの。jail のホスト名は /proc/>pid</status にある
Rrunnable 状態
S20秒未満の sleep 状態
Tstop 状態
Z死んでいる(ゾンビ)状態
さらにこの後に文字があれば、さらなる状態情報を表示します。
+プロセスはその制御端末のフォアグラウンドプロセスグループに属している
>CPU のスケジュール優先度が上げられている
<メモリ要求に対するソフトリミットが指定されており、現在そのリミットを超えている。このようなプロセスは(必然的に)スワップされない
Aランダムなページスワップを要求した
E終了しようとしている
L実メモリ中にロックされたページを持っている
Nプロセスはスケジューリング優先度が下げられている
SFIFO ページスワップを要求した
sセッションリーダである
Vvfork の間、一時中断されている
Wスワップアウトされている
Xトレースされているかデバッグされている