シェル その3
完成課程所需要的條件
Shell (貝殻) その3
コマンド起動とプロセスについて
-
前々回の添付資料の 1-1~1-3 をよく読んでみよう.
- ; & || && について
- 外部コマンドと内部コマンドの違いは?
- fork と子プロセス
- ^Z jobs kill bg fg ps top コマンド
- プロセス番号とは? プロセス状態(R,S,Z)の説明
- daemon(デーモン:妖精,鬼神) とは何か?
- ゾンビプロセス
ゾンビとは,プロセス(プログラム)は終了したのに,プロセスで使用していたリソース (メモリなど)が開放されずにいる状態.通常,子プロセスが先に死んだ場合,親プロセスが 子プロセスのリソースの後始末を行うが,何らかの理由(プログラムミス等)により, 親プロセスが子プロセスの面倒を見ない場合に,子プロセスはゾンビプロセスとなる. ゾンビプロセスは最終的には,全てのプロセスの親プロセスである init が面倒をみて 成仏させる.
演習
- 前々回の添付資料の 1-1~1-3 の演習を試してみよう.
- 必ずゾンビになるプログラム をダウンロードして
% chmod u+x zombie % ./zombie &
として起動してみよう. ソースコード:zombie.c
このプログラムは起動すると fork を呼び出して子プロセスを起動する.
子プロセスはすぐに終了するが,親プロセスは無限ループに入る.
ps ax | grep zombie で子プロセスのプロセス状態がZ になっていることを確認.
親プロセスを止めるにはどうすれば良いか?
- init プロセスについて
今回のコマンド
jobs, kill, bg, fg, ps, top, grep
最後修改: 2014年 04月 18日(週五) 16:30