是否可以向属于不同用户的进程发送信号?

时间:2012-11-11 20:01:35

标签: linux signals posix

我需要向不同的进程发送信号以进行某些实时通信,但该进程属于不同的用户。

例如

PID   user   group
1234  foo    foobar   
4321  bar    foobar

我希望进程1234和4321能够互相发送信号吗?

如果我使用套接字或管道,我可以将其掩码设置为rw-rw-r--,并且通信可以正常工作。但是我需要使用信号进行通信(普通或实时,不重要)。

有办法吗?

1 个答案:

答案 0 :(得分:6)

来自kill(2)的引用:

For a process to have permission to send a signal it must either be privileged
(under Linux: have the CAP_KILL capability), or the real or effective user ID
of the sending process must equal the real or saved set-user-ID of the target
process.  In the case of SIGCONT it suffices when the sending and receiving
processes belong to the same session.

您可以找到有用的功能(7)和setcap(8)。