如何在工作中使用符号信号?

在这样的回答中,我举了一个例子,应该在提交的作业中使用-SIGCONT信号。 但是,我发现我用-SIGSTOP停止的过程没有继续。 当我改变信号的数值,它的工作。

echo "kill -18 $rspid"|at now + 2 minutes 

使用数字值是一个坏主意,因为它可能在不同的系统上有所不同。

如何使用符号信号(-SIGCONT)而不是数字(-18)提交此作业?

我的猜测是,无论你在工作中使用的shell与在命令行中使用的不同,在at作业shell中没有内置的杀死符号信号符号的内置函数。 这在Ubuntu中很常见,它使用短划线(默认情况下为/ bin / sh),而对于交互式shell使用/ bin / bash。

您可以通过指定path来使用'kill'二进制文件:

 echo "/bin/kill -CONT $rspid" | at now + 2 minutes 

或者指定shell来显式执行:

 echo "/bin/bash -c \"kill -CONT $rspid\"" |at now + 2 minutes 

我以为有一个选项可以告诉我使用哪个shell,但现在我似乎无法find任何提及。 也许一个shebang会工作…

事实certificate,破折号喜欢在forms-CONT的信号,并不理解-SIGCONT风格。 由于bash理解这两者,使用前者可能更便于携带。

在我的testing中,我是否join了一个明确的“杀手”path,但是信号指定的方式并没有什么区别。