Можно ли отправить сигнал процессу, который принадлежит другому пользователю?

Мне нужно отправить сигнал другому процессу для связи в реальном времени, однако процесс принадлежит другому пользователю.

Например

PID   user   group
1234  foo    foobar   
4321  bar    foobar

Я хочу, чтобы процессы 1234 и 4321 могли посылать сигналы друг другу?

Если бы я использовал розетки или трубы, я мог бы установить их маску rw-rw-r-- и связь будет работать. Однако мне нужно сделать общение с помощью сигналов (обычное или в реальном времени, не важно).

Есть ли способ сделать это?

1 ответ

Решение

Цитата из 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) полезными.

Другие вопросы по тегам