プロセスのpidを取得してから終了したいと思います。これにより、次ps -ef | grep "python3 bot.py"
のような結果が出力されます。
root 43903 1 0 Jun26 ? 00:03:28 python3 bot.py
root 48808 48298 0 17:57 pts/0 00:00:00 grep --color=auto python3 bot.py
PIDを取得したいです43903
。 Bashスクリプトを使用してこれをどのように実行できますか?
これまで私は次のように書きました:
ps -ef | grep "python3 bot.py" | awk "NR==1 {print $1}"
どの出力
root 43903 1 0 Jun26 ? 00:03:28 python3 bot.py
しかし、今awkを再実行すると、出力はありません。43903
この行でbashをどのように取得できますか?
答え1
この試み:
ps ax | grep "python3 bot.py" | cut -f2 -d" " - | xargs kill
最初の2つのパイプはプロセス情報を取得し、PID列を取得しようとし、最後に生成されたPIDを終了します。
または、次のように動作する必要があります。
kill $(pgrep -f 'python3 bot.py')
お役に立てば幸いです。