System함수로 백그라운드 process실행시 kill -9로 종료되지 않는 문제점
글쓴이: bugger48 / 작성시간: 월, 2022/07/25 - 6:53오후
system함수로 process를 백그라운드 실행한 후 kill -9로 종료되지 않는 현상이 간헐적으로 발생하여 질문 드립니다.
program내에서 다음과 같이 코드를 반복수행하고 있습니다.
program실행코드{
while(1) {
system("proc &")
어떤 작업 수행...
system("pkill - 9 proc")
}
}
질문1. 기본적으로 system함수로 프로세스를 백그라운드 실행하는 방식이 문제가 없는 사용방식인지?
질문2. 이런 방식을 사용할 경우 예상되는 문제점(kill -9로 죽일 수 없다 등..)
googling으로도 해결할 수 없어서 이렇게 KLDP고수님들을 믿고 질문 드립니다. 꼭 좀 해결부탁 드립니다.
Forums:
pkill 을 하겠다는 것은, proc 의 동작에
pkill 을 하겠다는 것은, proc 의 동작에 대하여 믿음이 없다는 얘기인데, 믿음이 없는 실행의 결과물을 가지고 무언가를 한다는 것이 그리 좋은 구조는 아닌 것 같습니다.
다른 아이디어를 고민해 보시는 것이 좋을 것 같습니다.
그리고, 위의 구조는 race condition 이 발생활 경우의 수가 너무 많습니다.
kill 하기 전에 proc 이 종료될 경우..
kill 할 proc 이 과연 현재 실행된 프로그램에서 실행된 proc 인지..
등등..
그리고, 결정적으로 -9 가 먹지를 않는 상태면.. 해당 프로세스는 zombie 상태가 되었다는 것인데, 이런 프로그램을 while 로 실행 시킨다는 것은 OOM 을 발생 시키게 될 겁니다. 주기적으로 rebooting 해 주는 일이 발생하게 될 거에요.
댓글 달기