『輪廻のラグランジェ』season1まるっ!わかり ストーリーガイド
『輪廻のラグランジェ』(2012)
1話見ただけでは、ロボットのカッコよさがさっぱり分からないし、ジャージ部魂もよく分からないし、見どころが見つからず、 全然入ってきませんでした。
逆に、面白いところを探すために見る、ってモチベーションが生まれてしまったので、最後まで見るつもりではいます。
linuxではプロセスの輪廻はありません。killしたプロセスが勝手に生まれ変わったりしたら大変。OSの何を信じたら良いのか分かりませんね。親プロセスが子を生成し、親が存在するからこそ、子も存在できるのです。
今回は、親プロセスIDを追っかけます。
まず適当にプロセスを作ります。sleepコマンドを裏で動かします。
takk@deb9:~$ sleep 10000 &
今バックグラウンドで実行したsleepコマンドがpsで表示されるか確認してみましょう。
takk@deb9:~$ ps PID TTY TIME CMD 14801 pts/0 00:00:00 bash 14906 pts/0 00:00:00 sleep 14968 pts/0 00:00:00 ps takk@deb9:~$
次は全プロセスをID付きで表示してみます。
takk@deb9:~$ ps alx F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 4 0 1 0 20 0 204764 7064 - Ss ? 0:07 /sbin/init 1 0 2 0 20 0 0 0 - S ? 0:00 [kthreadd] 1 0 3 2 20 0 0 0 - S ? 0:05 [ksoftirqd/ 省略 1 0 14899 2 20 0 0 0 - S ? 0:00 [kworker/u2 0 1000 14906 14801 20 0 5320 676 - S pts/0 0:00 sleep 10000 1 0 14951 2 20 0 0 0 - S ? 0:00 [kworker/0: 1 0 14967 2 20 0 0 0 - S ? 0:00 [kworker/0: 0 1000 14970 14801 20 0 29344 1620 - R+ pts/0 0:00 ps alx 0 1000 17128 1396 20 0 831376 129404 SyS_po Sl ? 1:51 /usr/bin/pe 5 0 29539 1 20 0 272872 29120 - Ss ? 0:16 /usr/sbin/a 4 118 31869 1 20 0 325584 61828 - Ssl ? 10:29 /usr/bin/mo takk@deb9:~$
3列目がPID(プロセスID)、4列目がPPID(親プロセスのID)です。
awkでフィルタリングします。
takk@deb9:~$ ps alx | awk '{print "pid=",$3,"ppid=",$4}' pid= PID ppid= PPID pid= 1 ppid= 0 pid= 2 ppid= 0 pid= 3 ppid= 2 省略 pid= 15168 ppid= 14801 pid= 17128 ppid= 1396 pid= 29539 ppid= 1 pid= 31869 ppid= 1 takk@deb9:~$
awkの連想配列を使って、親プロセスを辿ってみましょう。すべての親は1番なので、1番になるまで繰り返しする処理です。
takk@deb9:~$ cat -n findfather.sh 1 #!/bin/bash 2 ps alx | awk ' 3 { 4 parent[$3]=$4 5 } 6 7 END{ 8 pid=14906 9 while(pid != 1){ 10 pid=parent[pid] 11 printf("-> %d", pid) 12 } 13 print "" 14 } 15 ' takk@deb9:~$
コメント