今日もLinuxと仲良くなるため「[試して理解]Linuxのしくみ」第1章の続き
こんにちは。今週も「シグナル」の続きを見ているのですが、ストーリーが佳境を迎えて手に汗握っています。「韓国語がわかれば、もっとニュアンスが理解できるんだろうなぁ」と、韓国語にも興味が湧いてきました。さて、今週は、先週に続いて「試して理解Linuxのしくみ」を、書かれていることを試しながら読みます。
試してLinuxのしくみを理解するという野望(2)
先週の続き、システムの統計情報を確認したりします。
実行権限が必要なことを忘れてた
無限ループするだけのPythonプログラムをバックグラウンドで走らせて、実行中のCPUコア0の命令の割合を確認します。と、ここで、実行権限がないと言われました。
$ taskset -c 0 ./inf-loop.py &
[1] 3359
taskset: failed to execute ./inf-loop.pytetrapod@JunkosX1:~/StudyForLinux$ : Permission denied
[1]+ Exit 126 taskset -c 0 ./inf-loop.py
実行権限を追加して、改めてバックグラウンドで実行します。
$ chmod +x ./inf-loop.py
$ taskset -c 0 ./inf-loop.py &
[1] 3528
$ sar -P 0 1 1
Linux 5.15.146.1-microsoft-standard-WSL2 (JunkosX1) 05/19/24 _x86_64_ (8 CPU)
11:45:06 CPU %user %nice %system %iowait %steal %idle
11:45:07 0 99.00 0.00 1.00 0.00 0.00 0.00
Average: 0 99.00 0.00 1.00 0.00 0.00 0.00
sarでCPUの情報を確認できたので、プロセスをkillして、CPUコア0の状態が変化したことも確認できました。
$ kill 3528
tetrapod@JunkosX1:~/StudyForLinux$ sar -P 0 1 1
[1]+ Terminated taskset -c 0 ./inf-loop.py
Linux 5.15.146.1-microsoft-standard-WSL2 (JunkosX1) 05/19/24 _x86_64_ (8 CPU)
12:09:44 CPU %user %nice %system %iowait %steal %idle
12:09:45 0 0.00 0.00 0.00 0.00 0.00 100.00
Average: 0 0.00 0.00 0.00 0.00 0.00 100.00
tetrapod@JunkosX1:~/StudyForLinux$
少しずつ思い出してきた!
さて、続いて親プロセスのプロセスIDを取得するgetppid()を無限に実行するというPythonプログラムを同じくバックグラウンドで実行してみます。今度は、実行権限を与えてから、実行できました。よしよし。
$ chmod +x syscall-inf-loop.py
$ taskset -c 0 ./syscall-inf-loop.py &
[1] 3411
$ sar -P 0 1 1
Linux 5.15.146.1-microsoft-standard-WSL2 (JunkosX1) 05/19/24 _x86_64_ (8 CPU)
15:59:33 CPU %user %nice %system %iowait %steal %idle
15:59:34 0 65.00 0.00 35.00 0.00 0.00 0.00
Average: 0 65.00 0.00 35.00 0.00 0.00 0.00
$ kill 3144
bash: kill: (3144) - No such process
$ sar -P 0 1 1
Linux 5.15.146.1-microsoft-standard-WSL2 (JunkosX1) 05/19/24 _x86_64_ (8 CPU)
16:00:22 CPU %user %nice %system %iowait %steal %idle
16:00:23 0 57.00 0.00 43.00 0.00 0.00 0.00
Average: 0 57.00 0.00 43.00 0.00 0.00 0.00
今度もプロセスを終了して再確認をしたのですが、CPUの状態に変化がありません。プロセスを終了できていないかもしれないと思って、「psコマンドで確認すれば良いかな」と、確かめることにしました。いいぞ、ちょっとずつUNIXのことを思い出してきた!
$ ps -a
PID TTY TIME CMD
1526 pts/0 00:00:00 sh
1533 pts/0 00:00:00 sh
1537 pts/0 00:00:07 node
1661 pts/1 00:00:00 bash
1891 pts/0 00:00:01 node
1930 pts/0 00:00:00 node
2176 pts/0 00:00:15 node
3411 pts/4 00:01:37 syscall-inf-loo ←まだ実行中!!!
3904 pts/4 00:00:00 ps
さきほど、killしたプロセスIDを間違えていたことがわかりました。改めて、正しいプロセスIDを指定して、終了しました。sarで確認すると、今度は、CPUの使用率が変わりました。
$ kill 3411
[1]+ Terminated taskset -c 0 ./syscall-inf-loop.py
$ sar -P 0 1 1
Linux 5.15.146.1-microsoft-standard-WSL2 (JunkosX1) 05/19/24 _x86_64_ (8 CPU)
16:01:21 CPU %user %nice %system %iowait %steal %idle
16:01:22 0 1.01 0.00 0.00 0.00 0.00 98.99
Average: 0 1.01 0.00 0.00 0.00 0.00 98.99
$
まだまだ、十分ではありませんが、なんとなく思い出してきたものがあるので、良い兆候です。この調子で、いろいろ思い出したいし、Ubuntuのことも知りたいので継続していきます。
MacとWindowsと
と、こんなことを私物のWindows 11環境で書いているのですが、マウスのホイールの向きがMacと逆で慌てたり、Windowの切り替えのショートカットでもたついたり、Macとの違いに混乱していることがわかります。Macも使いこなせているわけではないので、中途半端だなぁと思います。両方サクサク使えるように、頭を切り替えられるのが理想の状態なので、それを目指してがんばります。
この記事が気に入ったらサポートをしてみませんか?