ps -efからプロセスIDを取得する方法[冗長]

ps -efからプロセスIDを取得する方法[冗長]

プロセスの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')

お役に立てば幸いです。

関連情報