プロセスとジョブコントロール
プログラムとプロセス
プログラムとは記憶装置に保存された実行可能ファイル
メモリ上で実行されているプログラムはプロセスと呼ばれる
プロセスにも所有権がある
他のユーザーのプロセスを操作できない
自分の実行したプログラムのプロセス以外にもたくさんのプログラムが動いている
プロセスは別のプロセスの子プロセスである
例外はinitというプロセス
Linuxシステムを起動したときにカーネルによって実行される最初のプロセス
全てのプロセスはinitプロセスの子孫
プロセスの階層構造はpstreeコマンドで確認できる
ジョブとプロセス
ジョブはコンピュータにさせる仕事の単位
一つのコマンドの実行が一つのジョブ
$ grep linux dokushu.txt | sort | less
上記コマンドが一つのジョブ
パイプで区切った一つずつはプロセス
ジョブやプロセスの単位で中止や停止、再開を指示する
ジョブのバックグラウンド実行
通常はフォアグラウンドモードで実行される
コマンド &として実行すればバックグラウンド実行になる
xeyes コマンド実行したらプロンプトが返ってこない
xeyes & で実行するとそのまま次のコマンドが実行できるようになる
https://gyazo.com/ebbf9f65aad35fd10fb2c31db1bf0d11
・・・かわいいw
表示された数字はプロセスIDなのでこの数字をkillすると実行が止まる
https://gyazo.com/ef0ecf35b7a08404d0673cf2d00772ee
killのコマンドにもオプションがあって強制終了の場合はkill -KILL 1000 という感じで書く
絶対killするという強い意志を感じる
killコマンドはプロセスIDを指定することで、そのプロセスに対して(終了する)シグナルを送っている
killコマンドから停止したプロセスの再開のシグナルを送ることもできる
ジョブの一覧はjobs
プロセスの状態はpsで確認する