Advanced Programing in the Unix Environment 244 page의 setpgid 에 대한 설명을 보면 다음과 같은 내용이 나옵니다.
A process can set the process group ID of only if or one of its children. Furthermore, it can't change the process group ID of one of its children after that child has called one of the exec function.
위의 설명대로 하자면 맨 처음 test 프로그램이 실행된 상태에서 test1과 test2의 프로세스 그룹 아이디를 설정하시려면 test1과 test2가 test의 children 이거나 아니면 test1, test2 내부에서 setpgid 를 호출해야 합니다.
pid 1212 pgid 1212 인 데몬의 경우 main 에서 그 데몬의 그룹 아이디를 변경하시려고 하는것 같은데, 위의 조건에 맞지 않으므로(그 데몬이 님의 프로세스의 child process 도 아니고, 그리고 데몬 프로세스의 내부에서 변경하는 것도 아니기 때문에) 1212 번 데몬의 pgid는 변경할 수 없습니다.
한마디 덧 붙이자면.. 여기서 질문을 올렸을때 답이 없는 경우는 물론 아무도 모르는 경우에 그런일이 있을 수도 있지만, 질문이 명확하지 않아서 올라오지 않는 경우가 더 많습니다. 제가 위에 글을 인용했지만, 글의 어감이 맨 처음 질문의 답변을 다신 분들을 프로세스 ID 를 모르는 사람으로 단정 짓는 것 같은 느낌이 드는군요. 물론 님이 그런뜻으로 올린게 아니라 제가 오해한것일수도 있을수도 있습니다. 그렇다면 사과드립니다. 하지만, 여기서 답변을 올려주시는 분들은 모두 어떤 물질적인 이익을 얻고자 그런것이 아닌 순수하게 정보를 공유하자는 의미에서 글을 올리는 것입니다. 저도 이 게시판에 제 시간을 사용해 가면서 책을 찾아 답변을 올려야 할 아무런 의무도 없습니다. 단지, 미천한 지식이나마 사람들과 공유하고 싶어서 아는 범위 내에서 답변을 올리는 것입니다. 그러므로 여기 게시판 뿐만 아니라 어디든지 게시판에 질문을 올리실때는 최대한 자세한 설명과 공손한 태도로 질문을 올리시는게 예의라고 생각합니다. 답변보다 덧붙이는 말이 더 길군요. 이만 말 줄이겠습니다. 너무 기분나빠 하지 마시고, 그냥 참고하시라고 적어봤습니다.
Re: 프로세스 그룹 ID 같게설정하려면.
같은 내용의 글을 두번 올리지 마세요....
아래 올리셨던 글은 중복되는 내용이므로 삭제하였습니다.
그리고 궁금하신 사항을 좀더 자세히 적어 주시고, 문제가 되는 소스코드 부분을 직접 올려 주셔야 다른 분들이 좀더 쉽게 상황을 이해할 수 있을 것 같군요. :?
정말 무슨소린지 모르겠습니다.
프로세스 그룹이라는 것이 프로세스가 실행될때 소유자의 ID 가 같은것을 이야기 하나요? 아마 그런것 같은데...
정확하게 무었을 하려고 하는데 뭐가 문제다 라고 올리셔야 할것 같습니다.
- 겨울아찌 - :x
- 겨울아찌 -
winchild@gmail.com
질문 보완 ....ㅡㅡ;;
제가 질문이 애매한가요??
정확하게 말한거 같은데..쩝.. 프로세스 그룹 이란요.......
위에님이 말씀하신 실행유저의 그룹같은 것이 아니고요......
바로 프로세스의 그룹 입니다....ㅡ,.ㅡ;;;; 쩝..
프로세스의 그룹 말이죠...... 프로세스 ID 있죠? 그에때른 그룹이죠..냠..
제설명이 무슨말인지 모르시는분은 아마도 프로세스 에대해 모르시는
분같은데요... setpgid() 함수를 찾아보시면 제말이 무슨말 인지 알겁니다.
그리고 소스는.. 흠.... 워낙간단하여..
main()
{
setpgid( 1212, 0 );
}
pid 1212 pgid 1212 데몬이 하나 떠있습니다.
쩝...... 이런소스까지 다 적으려니 부끄럽군요..
이정도로도 답을 얻을수 없으려나......
----------------------------------------------------------------------------
[quote]제가 질문이 애매한가요?? 정확하게 말한거 같은데..
Advanced Programing in the Unix Environment 244 page의 setpgid 에 대한 설명을 보면 다음과 같은 내용이 나옵니다.
A process can set the process group ID of only if or one of its children. Furthermore, it can't change the process group ID of one of its children after that child has called one of the exec function.
위의 설명대로 하자면 맨 처음 test 프로그램이 실행된 상태에서 test1과 test2의 프로세스 그룹 아이디를 설정하시려면 test1과 test2가 test의 children 이거나 아니면 test1, test2 내부에서 setpgid 를 호출해야 합니다.
pid 1212 pgid 1212 인 데몬의 경우 main 에서 그 데몬의 그룹 아이디를 변경하시려고 하는것 같은데, 위의 조건에 맞지 않으므로(그 데몬이 님의 프로세스의 child process 도 아니고, 그리고 데몬 프로세스의 내부에서 변경하는 것도 아니기 때문에) 1212 번 데몬의 pgid는 변경할 수 없습니다.
한마디 덧 붙이자면.. 여기서 질문을 올렸을때 답이 없는 경우는 물론 아무도 모르는 경우에 그런일이 있을 수도 있지만, 질문이 명확하지 않아서 올라오지 않는 경우가 더 많습니다. 제가 위에 글을 인용했지만, 글의 어감이 맨 처음 질문의 답변을 다신 분들을 프로세스 ID 를 모르는 사람으로 단정 짓는 것 같은 느낌이 드는군요. 물론 님이 그런뜻으로 올린게 아니라 제가 오해한것일수도 있을수도 있습니다. 그렇다면 사과드립니다. 하지만, 여기서 답변을 올려주시는 분들은 모두 어떤 물질적인 이익을 얻고자 그런것이 아닌 순수하게 정보를 공유하자는 의미에서 글을 올리는 것입니다. 저도 이 게시판에 제 시간을 사용해 가면서 책을 찾아 답변을 올려야 할 아무런 의무도 없습니다. 단지, 미천한 지식이나마 사람들과 공유하고 싶어서 아는 범위 내에서 답변을 올리는 것입니다. 그러므로 여기 게시판 뿐만 아니라 어디든지 게시판에 질문을 올리실때는 최대한 자세한 설명과 공손한 태도로 질문을 올리시는게 예의라고 생각합니다. 답변보다 덧붙이는 말이 더 길군요. 이만 말 줄이겠습니다. 너무 기분나빠 하지 마시고, 그냥 참고하시라고 적어봤습니다.
Dream, Passion and Challenge..
arimaeb 님께 감사를 드리고 싶네요.
훌륭한 답변에 제 변호까지....
그리고 질문하신분 어떠한 경우라도 상대편에게 "모르는것 같은데.." 라는 말은 쓰지 마세요. 컴퓨터는 평생을 공부해도 부족합니다. 참고로 저는 유닉스/리눅스에서 C 프로그램한지 10년이 넘었습니다. ㅠ.ㅠ
- 겨울아찌 -
- 겨울아찌 -
winchild@gmail.com
아.....이런..
아~ 이런.. 죄송합니다...
제글이 그만 심기를 불편하게 했군요..
전부다 알고 계신것을.. 혹시 모르시는 분도 있다는 소리로 들려서...
자존심이 상할수도 있다는걸 제가 미처 생각못했군요........
앞으로는 이런실수를 하지 않기위해서 반드시 소스를 올리도록
노력하겠습니다.
제가그만 큰죄를 지었습니다. 부디 한번만 용서를 부탁합니다.:oops:
----------------------------------------------------------------------------
댓글 달기