我有一个shell脚本,我可以使用“trap”命令捕获发送的信号。
当收到特定信号时,它将执行某些功能。
我使用“kill”命令发送信号。
我只想触发脚本中的函数,而不是真正杀死脚本。
最初我认为SIGUSR1
和SIGUSR2
应该有用,但我错了,脚本刚刚退出。
那么有没有办法只使用kill来发送信号来触发某些功能而不会真正杀死进程?
答案 0 :(得分:3)
我相信它很少使用,但我知道你可以参考的一个常见案例。
DD
你可以在运行时向dd发送USR1信号,它将输出进度。完全用户名并且工作得很好,完全可移植的代码。参考:http://en.wikipedia.org/wiki/Dd_(Unix)
答案 1 :(得分:1)
根据杀戮和信号的手册(7),你可能希望的最好的是停止然后继续。但我不认为这会做你想要的。我还质疑使用“kill”的愿望,这个命令的名字使其目的非常明确,这样做。您可以使用kill发送的几乎所有信号都旨在终止进程或导致进程转储核心。我不是专家,但我认为你在这里试图使用错误的工具。