kill command로 SIGKILL(9)를 보냈을 경우를 말씀하시는 거죠?
아시다시피 SIGHUP이나 SIGINT 등은 프로세스가 catch가 가능하기 때문에 기본 행동을 하거나 무시하거나
원하는 다른 행동을 하도록 할 수 있지만, SIGKILL은 catch가 불가능합니다.
multi thread 프로그램에서 dead lock이 걸린 thread를 죽일 수 없거나, 악의적인 코드의 프로그램이
실행중인데 kill 할 수 없다면 관리하기가 쉽지 않겠죠.
이게 좋은 답변이 될 듯 합니다.
프로세스가 죽는다고
질문이 .. 좀비 프로세스에 대한건 아닌것 같아 제외하고..
간단히 말하면 리소스가 새는건 없습니다.
memory leak을 걱정해야 하는 부분은 장시간 수행되는 프로세스의 경우이고..
virtual memory의 개념을 찾아보시면 헷갈리지 않으실 거라고 봅니다.
자세한 순서는
자세한 순서는 모르겠지만, 열려있는 파일디스크립터는 모두 닫기며, 사용중인 메모리는 모두 회수됩니다. 현대 운영체제의 기본이죠.
하지만, 비정상적인경우, 죽인 프로세스가 좀비로 남을 수 있습니다.
kill command로
kill command로 SIGKILL(9)를 보냈을 경우를 말씀하시는 거죠?
아시다시피 SIGHUP이나 SIGINT 등은 프로세스가 catch가 가능하기 때문에 기본 행동을 하거나 무시하거나
원하는 다른 행동을 하도록 할 수 있지만, SIGKILL은 catch가 불가능합니다.
multi thread 프로그램에서 dead lock이 걸린 thread를 죽일 수 없거나, 악의적인 코드의 프로그램이
실행중인데 kill 할 수 없다면 관리하기가 쉽지 않겠죠.
이게 좋은 답변이 될 듯 합니다.
http://stackoverflow.com/questions/389927/does-the-unix-kill-command-insure-that-dynamically-allocated-memory-will-return-p
그렇군요....
그렇군요....
프로그램이 좀더 쉬워질 수 있겠네요...
(종료할 때 모든 리소스를 해제하는 수고를 할 필요 없으니....)
친절한 답변 감사합니다.
댓글 달기