共用のサーバーで作業する時にプログラムを暴走させてしまうと他人に迷惑をかけてしまいますが、 最初の頃、それをチェックすることも知らないまま放置してしまう人が居ないでも無いわけで、 取り敢えず色々出来る様にならないでも最低限知っておいて欲しい事。
自分のプログラムをチェックする
- top: 現在走ってる全てのジョブ(他人のも含めて)がリアルタイム表示される。
-
通常CPU使用率順に表示されるので、見覚えのないジョブが自分の名前で走ってたら注意。
top - 01:46:18 up 5:18, 2 users, load average: 0.02, 0.13, 0.15 Tasks: 345 total, 1 running, 344 sleeping, 0 stopped, 0 zombie Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0. Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0. ... Mem: 12289792k total, 7522028k used, 4767764k free, 53660k buffers Swap: 24579408k total, 0k used, 24579408k free, 7066040k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 user 15 0 10372 696 588 S 90.0 10.5 0:01.97 run.sh 2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0 ...
-
- ps -U$USER:
ps
は現在実行中のジョブ一覧を表示するコマンド。(topと違って一回きり。)-U$USER
で自分のジョブ全てを表示。-
-U$USER
しないと現在のシェルから走らせた物だけが表示される。(他のターミナルからログインしたりしたものが表示されない。)$ ps -U$USER PID TTY TIME CMD 5658 ? 00:00:02 sshd 5659 pts/0 00:00:00 bash 6097 pts/0 00:00:00 screen ...
これらで見覚えなのないものや明らかに暴走してるものがあったら
上のPID
の数字やCOMMAND
/CMD
の名前をメモして次へ。
ジョブの削除コマンド
- kill
: `kill`は与えられたPIDのジョブを終了する。 - さらにそれでも消えない時は
kill -9 <PID>
(またはkill -kill <PID>
)とすると強制終了。
- さらにそれでも消えない時は
- pkill
: `pkill`はコマンド名を与えてジョブを終了させる。 - こちらにも
-9
オプションで強制終了。 - こちらのが分かりやすいが、サーバーによってはコマンドが入ってない場合があるのでその場合はPIDを指定する
kill
を使用する。
- こちらにも
これらをしても終了できないようなゾンビ化してしまったジョブがある時は 仕方ないので管理者に連絡してなんとかしてもらう。 (放っておいても良いことは無いので、特に高負荷のものだったりする場合にはなるべく早めに。)
Sponsored Links