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