Linux 是否可以使用;“杀死”;向进程发送信号而不强制进程退出?

Linux 是否可以使用;“杀死”;向进程发送信号而不强制进程退出?,linux,signals,kill,Linux,Signals,Kill,我有一个shell脚本,可以使用“trap”命令捕获发送的信号 当收到特定信号时,它将执行某些功能 我使用“kill”命令发送信号 我只想触发脚本中的函数,而不是真正终止脚本 最初我认为SIGUSR1和SIGUSR2应该可以工作,但我错了,脚本刚刚退出 那么,有没有一种方法可以只使用kill发送信号来触发某些功能,而不真正终止进程?根据kill和signal手册页(7),您希望的最好方法是停止,然后继续。但我不认为这会满足你的要求。我还质疑使用“kill”命令的愿望,该命令的名称清楚地表明了它的

我有一个shell脚本,可以使用“trap”命令捕获发送的信号

当收到特定信号时,它将执行某些功能

我使用“kill”命令发送信号

我只想触发脚本中的函数,而不是真正终止脚本

最初我认为
SIGUSR1
SIGUSR2
应该可以工作,但我错了,脚本刚刚退出


那么,有没有一种方法可以只使用kill发送信号来触发某些功能,而不真正终止进程?

根据kill和signal手册页(7),您希望的最好方法是停止,然后继续。但我不认为这会满足你的要求。我还质疑使用“kill”命令的愿望,该命令的名称清楚地表明了它的预期目的。使用kill发送的几乎每个信号都是为了终止进程或使其转储内核。我不是专家,但我认为您试图在这里使用错误的工具。

根据kill and signal(7)手册页,您最好的希望是停止,然后继续。但我不认为这会满足你的要求。我还质疑使用“kill”命令的愿望,该命令的名称清楚地表明了它的预期目的。使用kill发送的几乎每个信号都是为了终止进程或使其转储内核。我不是专家,但我认为您试图在这里使用错误的工具。

我相信很少使用它,但我知道一个常见案例,您可以参考

dd


您可以在运行时向dd发送USR1信号,它将输出进度。完全是用户使用的,而且工作非常好,代码也完全可移植。参考资料:

我相信它很少被使用,但我知道一个常见的情况,你可以参考

dd


您可以在运行时向dd发送USR1信号,它将输出进度。完全是用户使用的,而且工作非常好,代码也完全可移植。参考资料:

请展示您的shell脚本。@BasileStarynkevitch只是一个实验脚本,它将永远休眠,并且只在收到信号时打印某些内容……我认为正如下面的回答所说,我不应该使用“kill”@BasileStarynkevitch,我明白了。只有当我的脚本处于休眠状态时,它才会退出。如果我在睡眠之间添加一些东西,效果会非常好:>请显示你的shell脚本。@BasileStarynkevitch只是一个实验脚本,它将永远睡眠,并且只在收到信号时打印一些东西……我认为正如下面的回答所说,我不应该使用“kill”@BasileStarynkevitch我得到了它。只有当我的脚本处于休眠状态时,它才会退出。如果我在睡眠之间添加一些东西,效果会非常好:>是的。也许我应该使用其他命令来发送信号。起初我认为“杀戮”是一种通用的方式:>是的。也许我应该使用其他命令来发送信号。最初我认为“杀死”是一种通用的方式:>