kill -s SIGINT ps SHELL

时间:2012-10-10 19:35:09

标签: shell

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

3 个答案:

答案 0 :(得分:3)

存在错误消息,以便在出现问题时为开发人员和用户提供线索。我怀疑你将SIGINT误导为SIGNIT。您收到的错误消息与您的陈述中的拼写错误一致。

我觉得这显示了糟糕的研究工作,因为如果您在寻求帮助之前已经阅读过错误消息,那么您可能会想出来。

答案 1 :(得分:3)

我想回答这个问题,因为我最近解决了类似的问题。当您致电kill -s SIGINT时,您可以使用sh来运行该脚本。不幸的是,与shlinux shell kill signal SIGKILL && KILL)不同的bash将在compatibility mode中运行,而无法识别SIGINT。

最佳解决方案是明确使用/bin/bash。顺便说一句,#!/bin/bash在您sh脚本时也不起作用。

希望它有所帮助。

答案 2 :(得分:2)

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

此外,kill通常采用进程标识而不是进程名称。内置vs外部“kill”命令也可以不同地支持(或不支持)。

相关问题