お久しぶりでございます。
今回はPythonでgnome-shellプロセスを監視しようと思います。
本題に入る前に最近のお話を少し…。
当環境では21.04にしてから「gnome-shell」プロセスがCPU使用率100%になることがしばしばありました。
今回はそんな「gnome-shell」を監視して、100%にならない様に事前に防ごうって話です。
まず、CPUを食いまくってるプロセス「gnome-shell」がCPUを食ってるという情報を取ってくる必要があります。
/usr/bin/ps -C gnome-shell --format %cpu | grep -v %CPU
上記のコードを端末(Terminal)で実行すると
2.8
といった感じに表示されるはずです。
今回はこの数値が変動するたびに特定のコードを実行するといったコードを書きます。
githubに載せましたが、今回のはif文まみれです。
条件としては「CPU使用率が以前よりも高い場合にgnome-shellを再起動」を基本としています。
コード内に「Restart_GS」というコマンドがありますが、中身はこれです。
https://github.com/CrossDarkrix/Auto-Restart-Gnome-Shell_Tool/blob/main/Restart_GS
「GS」は「gnome-shell」という意味です。
「Restart_GS」は「/usr/bin/」に配置して置いてください。
また、「Refresh-Gnome-shell.py」はデーモン化を想定していて、導入する場合はデーモンを個別に作成してください。
※デーモン起動時やスクリプト起動時にgnome-shellが再起動するのは仕様です。
「psコマンド」で監視している部分のコードを書き換え、実行するコマンドの部分も書き換えれば別のプロセスを監視して「CPUが高くなった時に」任意のコマンドを実行することができます。
本当は「プロセスがCPUを特定の数値まで消費した時に任意のコマンドを実行」としたかったのですが、特定のプロセス(今回はgnome-shell)はpsコマンドで監視するしかなかったのとそんな都合のいい感じにPythonでは制御できないので断念しました。