11月4日の学び②
長いので終わらなかった。続きはまた今度。
プロセステーブル(プロセス制御ブロック)
Kernelがプロセスの状態を管理するデータ構造
プロセスの生成
親プロセスから子プロセスへの変数の引き渡し
- ここではあくまでも変数の引き渡し
- シェル変数では子プロセスは参照できないが、環境変数ならば子プロセスは参照できる
シグナルを用いたプロセス間通信
- 任意のプロセス間ではシグナルを用いてイベントの発生を通信できる
- あくまでのイベントの発生であってTCP/IP通信のように任意の信号ではない
- シグナルの送信をkill、シグナルの受信はtrapと呼ぶ
- シグナル一覧は"kill -l"コマンドで確認できる
- killはプロセスを殺すわけではない。(シグナルを省略すると殺すが。)
$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGEMT 8) SIGFPE 9) SIGKILL 10) SIGBUS 11) SIGSEGV 12) SIGSYS 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGURG 17) SIGSTOP 18) SIGTSTP 19) SIGCONT 20) SIGCHLD 21) SIGTTIN 22) SIGTTOU 23) SIGIO 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGINFO 30) SIGUSR1 31) SIGUSR2
ログインシェル
- ログインした際に実行されるシェル
- つまりログインシェルは対話型のアプリケーションの一つであり起動時に自動で実行される。
- シェルはログイン直後から動き出す
- 2つ以上のシェルを同時に使えない(1度に使えるのは1つだけ)
- 使うシェルを途中で変えることができる
関連
blog.a-know.me shellscript.sunone.me language-and-engineering.hatenablog.jp