我正在尝试编写一个bash脚本来查找正在运行的进程的PID然后发出kill命令.我有部分工作,但我面临的问题是可能有多个进程在运行.我想对找到的每个PID发出一个kill命令.
我认为我需要将每个PID放入一个数组中,但是如何做到这一点却不知所措.
到目前为止我所拥有的:
pid=$(ps -fe | grep '[p]rocess' | awk '{print $2}')
if [[ -n $pid ]]; then
echo $pid
#kill $pid
else
echo "Does not exist"
fi
Run Code Online (Sandbox Code Playgroud)
这将做什么是在一行返回所有PID,但我无法弄清楚如何将其拆分为数组.
Spa*_*son 21
这是一个可能有帮助的小衬垫
for pid in `ps -ef | grep your_search_term | awk '{print $2}'` ; do kill $pid ; done
Run Code Online (Sandbox Code Playgroud)
只需将your_search_term替换为要杀死的进程名称即可.
你也可以将它变成一个脚本,并交换your_search_term为$ 1
编辑:我想我应该解释一下这是如何工作的.
后面的滴答声``收集它里面表达式的输出.在这种情况下,它将返回进程名称的pid列表.
使用for循环,我们可以迭代每个pid并终止进程.
EDIT2:用kill替换kill -9