見出し画像

今日も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も使いこなせているわけではないので、中途半端だなぁと思います。両方サクサク使えるように、頭を切り替えられるのが理想の状態なので、それを目指してがんばります。

この記事が気に入ったらサポートをしてみませんか?