プログラミングとゲーム関連を書いていく。

プログラミングの小言とゲーム関連の記事を書いていきます

pythonでgnome-shellプロセスの監視

お久しぶりでございます。

今回はPythongnome-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.com

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では制御できないので断念しました。