如何从 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

前两个管道获取进程信息,然后我们尝试获取 PID 列,最后,我们杀死生成的 PID。

或者,这也应该有效:

kill $(pgrep -f 'python3 bot.py')

希望这可以帮助。

相关内容