为什么killall不能从脚本中运行?

时间:2012-10-12 20:30:29

标签: embedded-linux busybox

我有一个启动两个程序(cxLog和cx)的脚本(runcx)。我希望能够杀死整个混乱,所以我创建了一个脚本:

50:/root # cat stop
killall runcx
killall cx
killall cxLog

但它不起作用:

50:/root # ./stop
: no process killed
: no process killed
: no process killed

而个别命令则执行:

50:/root # killall runcx
50:/root # killall cx
killall: Could not kill pid '256': No such process
50:/root #

(cx正在使用线程,当其父进程被杀死时,pid'256'显然已消失)

这里发生了什么?如果没有打字,我怎么能让我的程序被杀? 环境是Linux内核2.4.26和相当旧版本的busybox。

1 个答案:

答案 0 :(得分:1)

我在输入以上内容之后但在点击发布按钮之前想出了这个。我使用vim在PC上创建了脚本“stop”,默认文件格式为dos。因此,killall试图杀死名为“runcx ^ M”,“cx ^ M”和“cxLog ^ M”的程序。我删除了^ Ms并且脚本工作得更好!