我想获取一个进程的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')
希望这可以帮助。