【发布时间】:2015-05-11 07:01:26
【问题描述】:
见鬼去吧,
我正在尝试编写一个 shell 脚本来运行一个程序并发送一系列信号,它们之间存在延迟。我写了以下代码。
#!/bin/sh
KNOCK="KNOCK"
export KNOCK
./knock &
knockPID=$!
kill -SIGUSR2 $knockPID
kill -SIGUSR2 $knockPID
kill -SIGUSR1 $knockPID
sleep 2s;
kill -SIGUSR1 $knockPID
kill -SIGUSR2 $knockPID
我不断收到每个 kill 命令的以下错误
kill: Illegal option -S
感谢您的帮助。
【问题讨论】:
-
您使用的是什么操作系统?查看系统的
kill手册页 - 其中许多支持不同的语法。还有,什么壳?kill是许多 shell 中的内置函数。 -
kill --signal SIGUSR2 $knockPID呢? -
使用 --signal 将错误更改为非法选项 --
-
您应该添加您正在使用的外壳,因为
/bin/sh不会链接到每个系统上的同一个外壳。你可以运行ls -l $(which sh)查看链接。