常に固定プロセスIDを使用するようにPythonスクリプトを設定したいと思います。だから私はそれを殺したいたびに私はそれのためにpsauxをする必要はありません。助けてください。
私はUbuntuとCentOSを使用しています。
Ubuntuは私のテストシステムですCentOSは私のサーバーです
常に固定プロセスIDを使用するようにPythonスクリプトを設定したいと思います。だから私はそれを殺したいたびに私はそれのためにpsauxをする必要はありません。助けてください。
私はUbuntuとCentOSを使用しています。
Ubuntuは私のテストシステムですCentOSは私のサーバーです
これは不可能です。PosixプロセスIDはランダムであることが保証されています(たとえばOpenSSL
、プロセスIDを使用して乱数ジェネレーターをシードします)。あなたができる唯一のことは、プロセスIDをファイルに書き込み、書き込まれたプロセスIDに基づいてプロセスを強制終了することです。
kill `cat x.pid`
これは、Pythonやその他のプロセスでできることではありません。
プロセスIDはLinuxカーネルによって割り当てられ、IDの一意性が保証されています。
さらに、プロセスが別のプロセスの子プロセスとして使用されている場合、そのプロセスIDは、親プロセスが終了ステータスを読み取ったことを確認するまで、カーネルプロセステーブルに残ります。つまり、後でプロセスIDを単純に再利用することはできず、プロセステーブルで予約されている可能性があります。
毎回プロセスをキャッチするクリエイティブなkillコマンドを考案できると確信しています。
kill `ps -fC python2.7 | grep yourscriptname.py`
または類似。
プロセスを削除するための小さなスクリプトを書いてみませんか。
#!/bin/sh
#Kill my python process called myPython
kill `ps -A | grep myPython | nawk '{ print $1}'`
# Or
kill `ps -U myname | grep myPython | nawk '{ print $1}'`
そして、スクリプトを実行するだけでプロセスを強制終了できます...