웹에서 프로세스에게 시그널 전송해주는 방법좀 알려주세요~

익명 사용자의 이미지

안녕하세요....

웹에서 button 클릭시 cgi프로그램이 실행하게 하였습니다.
이 cgi프로그램에서는 백으로 실행중인 프로세스에게 시그널을
전송해 주는 것인데......
웹에서의 실행동작이라서 그런지 시그널이 전송이 되지 않습니다.
해본방법은 --> system()함수랑... kill(pid,sig)함수랑
전부다 안되요....

아무래도 웹에서 무엇을 한다는게 쉽지 않은 듯..........

웹에서의 리눅스의 프로세스를 제어하는 방법좀 알려주세요

익명 사용자의 이미지

시그널은 같은 effective 나 real 프로세스 ID 인경우

가능한 것으로 알고 있습니다.

물론 root는 모든 프로세스에게 보낼 수 있겠죠...

The process does not have permission to send the signal to any of
the receiving processes. For a
process to have permission to send a signal to process
pid it must either have root privileges, or
the real or effective user ID of the sending
process must equal the real or saved set-user-ID of
the receiving process.

웹에서 실행했다고 하면 그것은 nobody 가 실행한 것과 마찬가지이므로..

signal을 다른 프로세스에게 보낼 수 없겠죠....

물론 해당프로세스가 nobody 권한으로 돌아가고 있다면..가능하겠지요...

익명 사용자의 이미지

음.... 맞는 말씀이십니다.

그래서 cgi소스중에 setuid(0)으로 해서 루트권한을 주었답니다.
이걸루는 해결방법이 되지 않는 것 같습니다.

웹서버를 boa로 쓰고 있는데....
User root
Group nogroup 이렇게 설정을 해주었답니다.....

설정에 문제가 있는지좀 봐주세요