linux之从命令行发送信号进行处理

dyllove98 阅读:35 2024-02-27 23:08:18 评论:0

我了解了信号,并且知道如何从命令行将信号发送到进程。做就是了

ps -C executable 

知道过程的pid,然后
kill -s signal pid(number) 

但是,如果可能的话,我想找到一种更具交互性和更通用的方法。

我想从命令行向特定进程发送信号。我不想打印我要发信号的进程的PID,而是使用一种方式来理解代码应该发信号的进程。

除此之外,我还想清楚地了解一下kill命令的作用。
  • 它会杀死发出信号的进程吗?
  • 它会终止被调用的进程吗?
  • 如果它杀死一个进程,则意味着它类似于exit(0),或者该进程在信号回送后是否继续?
  • 请您参考如下方法:

    据我了解您的问题,您想通过其名称而不是其PID来发出信号。可以通过组合以下两个命令轻松实现:

    kill -s signal $(ps -C executable) 
    

    Does it kill the process that signals?


    kill 可以杀死。不一定。

    man kill:

    The command kill sends the specified signal to the specified processes or process groups.



    这意味着 kill命令通常用于**发送任何信号。

    If it kills a process it means that it's similar to do exit(0), or does the process resume after the signal is sent back?



    here:

    The SIGKILL signal is used to cause immediate program termination. It cannot be handled or ignored, and is therefore always fatal. It is also not possible to block this signal.



    如果进程收到 SIGKILL信号,它将立即终止(不调用析构函数,不执行清理操作)。不终止的唯一进程是不间断的进程。

    可以在 here上找到Linux上可用信号的完整列表。


    标签:linux
    声明

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    关注我们

    一个IT知识分享的公众号