Nagiosを使用して監視したいプロセスを開始するPythonスクリプトがあります。私がそのスクリプトを実行し、私のubuntu EC2インスタンスでps -ef
を実行すると、プロセスはpython <filename>.py --arguments
と表示されます。 Nagiosがcheck_procsを使ってそのプロセスを監視するためには、プロセス名を指定する必要があります。ここでプロセス名は 'python'になります。check_procsでnagiosを監視するためにシェルを使用してプロセス名を変更する
/usr/lib/nagios/plugins/check_procs -C python
これは、1つのpythonプロセスが実行している出力を返します。これは、私が1つのpythonプロセスを実行しているときには問題ありません。しかし、私が複数のPythonスクリプトを実行していて、ほんのわずかしか監視していない場合は、その特定のプロセス名を指定する必要があります。上記のコマンドで、私はPythonのスクリプト名を与える場合、それはエラーをスローします。だから私は全体をpython <filename>.py --arguments
にマスクして、check_procsを実行している間にその新しい名前を与えることができるようにしたい。
ご意見がありましたら、お知らせください。私はsetproctitleを使ってpythonのプロセス名を変更することを提案する他のstackoverflowの質問をチェックしましたが、シェルを使ってそれを実行したいと思います。あなたがそうする(例えば、Cで書かれた)ラッパーを使用することができますが、
よろしく、ピュアPythonから
Sanket
シェルを使用してPythonスクリプトを起動し、別のプロセスを開始するとします。ただし、実際にシェルに提供しているものとは異なるプロセス名と引数を使用して、元のPythonプロセスをシェルに起動させたいとします。あれは正しいですか? –
はい。これが私が達成したいと思っているものです! –
check_procsはpsコマンドの出力を見るよりも賢いです。 #!を使用すると、すでに名前を検出できます。あなたのPythonの行を直接実行してください。 [完全にマニュアルページには書かれていません:(]。私の答えを見てください:http://stackoverflow.com/a/10232406/117714 – spazm