【发布时间】:2019-11-05 08:02:29
【问题描述】:
我需要终止一个进程并使用启动它的相同命令重新启动它。已使用以下命令完成。
但问题是我收到的命令与用于启动的原始命令不同。原始命令带有引号,而我收到的命令不带引号。所以它没有开始。
我不知道为什么?谁能帮我解决这个问题...
下面的脚本:
processes=$(ps aux | grep $1 -i | grep -v grep | grep -v sh | awk '{print $2}')
cntr=0
for i in $processes; do
cmd=$(cat /proc/$i/cmdline | tr '\000' ' ')
kill $i;
cmds[$cntr]=$cmd
cntr=$cntr+1
done
#Restart the process
echo "Commands: " $cmds
for cmd in $cmds; do
echo "Starting..." $cmd
eval "$cmd"
done
原始命令:"/apps/test/bin/" xxxxx
我的命令:/apps/test/bin xxxxx
【问题讨论】:
-
查杀成功了吗?
-
是的,杀戮已经完成。唯一的问题是命令中的引号。
标签: linux shell kill-process