-1

我在命令行上使用此命令 kill -s SIGINT ps 并且它可以工作(该过程已被消除),但是当我在 SHELL 脚本上使用该命令时它不起作用并且它显示此错误消息 kill: SIGNIT: invalid信号规范。我该如何解决这个问题。谢谢

4

3 回答 3

3

我想回答这个问题,因为我最近解决了类似的问题。当您调用 时kill -s SIGINT,您可以使用sh来运行脚本。不幸sh的是,与bash( linux shell kill signal SIGKILL && KILL ) 不同的是,它将在兼容模式下运行并且无法识别 SIGINT。

最好的解决方案是/bin/bash显式使用。顺便说一句,当你编写脚本#!/bin/bash时也不起作用。sh

希望能帮助到你。

于 2013-12-23T09:32:13.800 回答
3

存在错误消息以在出现问题时为开发人员和用户提供线索。我怀疑你打错SIGINT了 as SIGNIT。您收到的错误消息与您声明中的拼写错误一致。

我觉得这表明研究工作很差,因为如果你在寻求帮助之前阅读了错误信息,你就会明白的。

于 2012-10-10T19:40:47.103 回答
2

执行脚本的 shell 可能正在使用内置的“kill”命令,而您的命令行 shell 正在使用外部二进制文件,反之亦然。明确使用/bin/kill,看看是否有助于更加一致。 kill -SIGINT我相信,这是更常见的方式(而不是“-s SIGINT”)。

此外,kill通常采用进程 ID 而不是进程名称。内置与外部“kill”命令也可能以不同的方式支持(或不支持)这一点。

于 2012-10-10T19:40:40.887 回答