2012-11-11 7 views
3

일부 실시간 통신을 위해 다른 프로세스에 신호를 보내야하지만 프로세스가 다른 사용자에게 속합니다. 다른 사용자의 프로세스에 신호를 보낼 수 있습니까?

PID user group 
1234 foo foobar 
4321 bar foobar 

내가 처리 1234 및 4321은 서로에게 신호를 보낼 수 있도록하려면 예를

를 들어

?

소켓이나 파이프를 사용하는 경우 마스크를 rw-rw-r--으로 설정하면 통신이 가능합니다. 그러나 신호를 사용하여 통신해야합니다 (보통 또는 실시간, 중요하지 않음).

할 방법이 있습니까? 죽에서

답변

5

견적 (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) 유용합니다.

+1

CAP_KILL 권한이 _any_ 권한 검사를 무시하며 특정 사용자/그룹에게 보내는 신호를 제한하고 싶습니다. 그것을 할 수있는 방법이 있습니까? – Artyom

+1

@Artyom 유일한 다른 방법은 동일한 UI에서 두 앱을 모두 실행하는 것 같습니다. –

관련 문제