動作中のジョブは
$ jobs [1]+ Stopped gnuplot
のように確認できます. とはいえ, Stoppedでgnuplotは停止中ですね.
Running : 実行中, Killed: 強制終了, Done: 正常終了, Exit: 異常終了などがあります.
フォアグランドジョブというのが, 現在表で実行中のジョブのことですが, 裏で動作する
バックグランドジョブに切り替えることができます.
$ bg %1 [1]+ gnuplot & [1]+ Stopped gnuplotとこのようにbg %ジョブ番号でバックグラウンドになります. (%注意)
逆にしたければ
$ fg %1 gnuplot gnuplot>でフォアグラウンドにできます. ちなみに引数をいれなければデフォルトでStoppedのジョブが選ばれます.
また, プロセス一覧も見ることができます.
$ ps PID TTY TIME CMD 478 ttys000 0:00.04 -bash 995 ttys000 0:00.01 gnuplot 895 ttys001 0:00.01 -bashターミナルを2つ立ち上げていたので, bashが二つプロセスとしてあります.
PIDというのはプロセスを管理するプロセス番号です. 試しに消してみましょう.
$ kill 995 $ ps PID TTY TIME CMD 478 ttys000 0:00.05 -bash 895 ttys001 0:00.01 -bash [1]+ Terminated gnuplot
とまぁgnuplotが終了されました. これはTERMシグナルというものを送っています.
本気で殺したければkill -KILLとKILLシグナルを送ります.
$ kill -KILL 1041 $ ps PID TTY TIME CMD 478 ttys000 0:00.07 -bash 895 ttys001 0:00.01 -bash [1]+ Killed gnuplot
これで無事強制終了されました. なお, Kill PID番号でプロセスを, Kill %ジョブ番号でジョブを殺せます.
シグナルは色々あるらしいので, よくわからんのですが, (kill -lコマンドで確認可能)
とりあえず有名なのはHUPシグナルらしいです.
これはネットワークサービスとして動くデーモンに設定ファイルを再読み込みさせるために使います.
ようするに, 何か設定ファイル変えたときに反映させるためですね.
$ ps -axwで全ユーザプロセスを省略せずに見ることができます. これでプロセス探して,
$ kill -HUP PIDとすることで, 更新させることができます.
なお, 他にkillallコマンドってのがあって, そっちはコマンド名でシグナルを送るそうです.
$ killall gnuplot $ ps PID TTY TIME CMD 478 ttys000 0:00.10 -bash 895 ttys001 0:00.03 -bash [1]+ Terminated gnuplot
ps -axwがでてきたのでついでに書くと, topコマンドを使うと, 色んなシステム状態をリアルタイムで見れます.
アクティビティモニタと同じですね. これも全然知らんかった...
ちなみに, 一緒に書くのがいいかわからんが,
$ df -i -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk0s2 298Gi 100Gi 197Gi 34% 26399483 51659343 34% / devfs 107Ki 107Ki 0Bi 100% 610 0 100% /dev map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /homeでディスク使用状況を見れます. -iってのはi-nodeの使用状況も表示, -hってのは
勝手に人が見やすい単位を表示してくれてます.
まぁしかしコマンドってのは死ぬほどあるな. 必要になれば, あるいは人が使ってみるのを見て覚えるしかない.
正直こういったことは覚えたから偉いって訳でもなく, ただ便利だよね, てだけなので必要に応じることが大事だと思います. (初心者が学ぶ姿勢ではないか…)
0 件のコメント:
コメントを投稿