【问题标题】:How can I send a signal to a process using its pid from inside the kernel (not from the user space)如何从内核内部(而不是用户空间)使用其 pid 向进程发送信号
【发布时间】:2021-08-03 21:33:29
【问题描述】:

我正在编写一个新的系统调用,我想向我刚刚创建的进程发送一个 kill(pid, SIGSTOP) 信号,以便将其从运行队列移动到等待队列。然后,我可以使用 kill(pid, SIGCONT) 再次唤醒它。

问题是 kill 仅在用户空间使用,我如何从内核本身发送信号?是否有可以使用的等效功能? 我找到了kill_pid,但我不知道应该如何包含它的标题。

【问题讨论】:

标签: linux-kernel kernel signals kill-process


【解决方案1】:

您似乎找到了从内核空间向进程发送信号的正确方法 - kill_pid,它也被导出,这意味着它可用于内核模块。 使用 elixir - 让我们看看 examples 的一些用法 - 这会告诉你符号是在哪个头文件中定义的 - 所以你应该首先包含 sched/signal.h 并为你可能拥有的任何其他依赖项执行该过程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多