rcmdnk's blog

Linuxコマンドライン入門 1日目 (ネット時代の、これから始めるプログラミング(NextPublishing))

共用のサーバーで作業する時にプログラムを暴走させてしまうと他人に迷惑をかけてしまいますが、 最初の頃、それをチェックすることも知らないまま放置してしまう人が居ないでも無いわけで、 取り敢えず色々出来る様にならないでも最低限知っておいて欲しい事。

自分のプログラムをチェックする

  • 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
Sponsored Links

« Vimのfiletypeがアップデートされてデフォルトで'md'がmarkdownになるようになっていた GmailでGmail以外のアドレスでGmailのSMTPが使えなくなってた件(実は使えた件) »

}