안녕하세요.
C 프로그램내에서 특정 process 가 살아 있는지 확인 할 수 있는 방법이 있을까요?
도통 감이 안 잡힙니다.
여러 고수님들의 조언 부탁 드립니다.
에고...질문을 잘못 봤군요...
삭제하겠습니다..ㅜㅜ
나는 나다. 내가 다른사람일수는 없다. irdeal
May The Force Be With You irdeal
확인에 사용하는 키는 프로세스 이름이겠죠?
quick&dirty 방식으로는
system("ps -C process_name > /dev/null");
좀 노가다스럽게는 /proc 디렉터리를 opendir() 해서 readdir()로 훑어가면서 /proc/[pid]/ 안의 stat이나 status, exe 등의 파일 내용을 확인해 보는 방법이 있습니다.
단순히 중복 실행 방지를 위한 것이라면, http://bbs.kldp.org/ 에서 검색을 통해 세마포어나 공유 메모리를 이용하는 방법을 찾으실 수 있습니다.
(혹시나 싶어 말씀드리자면, 중복 작성 등으로 인해 글을 지워야 할 때는 "편집" 탭을 누르고 화면 아래의 지우기 버튼을 눌러주시면 됩니다.) ---- $PWD `date`
$PWD `date`
어설푼 이..
잘 됩니다. ^^
감사 합니다.
system("ps -C process_name > /dev/null") 이코드가 신기해서 실제로 해보니 정말로 작동하
네요^^ 그런데 작동을 하는데 어떻게 작동하는지 그 의미를 모르겟네요 ㅠㅠ
ps -C process_name까지는 이해가 되는데 이 결과를 /dev/null로 저장(">")하면 어떻게 되는
지 이해가 안됩니다.
그리고 /dev/zero와 /dev/null의 차이가 뭔가요? 이 둘이 많이 쓰이더군요^^
"> /dev/null" 부분은 괜히 "ps -C process_name"의 출력 결과가 화면에 찍히는 걸 막기 위해 표준 출력을 전환(redirect)시키는 것입니다. 검색을 통해 많은 자료들을 보실 수 있고, "man bash"에서 "REDIRECTION" 절을 보실 수도 있습니다.
/dev/zero와 /dev/null의 차이는 http://bbs.kldp.org/ 에서 "/dev/zero" 정도로 검색하시면 찾으실 수 있습니다. 하늘 아래 새로운 것은 없으니까요 :)http://bbs.kldp.org/viewtopic.php?t=37665 ---- $PWD `date`
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
...
에고...질문을 잘못 봤군요...
삭제하겠습니다..ㅜㅜ
나는 나다. 내가 다른사람일수는 없다.
irdeal
May The Force Be With You
irdeal
확인에 사용하는
확인에 사용하는 키는 프로세스 이름이겠죠?
quick&dirty 방식으로는
의 반환값을 확인하는 방법이 있습니다. 0이 나오면 그 프로세스가 존재하는 것입니다.
좀 노가다스럽게는 /proc 디렉터리를 opendir() 해서 readdir()로 훑어가면서 /proc/[pid]/ 안의 stat이나 status, exe 등의 파일 내용을 확인해 보는 방법이 있습니다.
단순히 중복 실행 방지를 위한 것이라면, http://bbs.kldp.org/ 에서 검색을 통해 세마포어나 공유 메모리를 이용하는 방법을 찾으실 수 있습니다.
(혹시나 싶어 말씀드리자면, 중복 작성 등으로 인해 글을 지워야 할 때는 "편집" 탭을 누르고 화면 아래의 지우기 버튼을 눌러주시면 됩니다.)
----
$PWD `date`
$PWD `date`
답변 감사 합니다.
어설푼 이..
잘 됩니다. ^^
감사 합니다.
어설푼 이..
system("ps -C process_name > /dev/null")를 어떻게 해석하나요?
system("ps -C process_name > /dev/null") 이코드가 신기해서 실제로 해보니 정말로 작동하
네요^^ 그런데 작동을 하는데 어떻게 작동하는지 그 의미를 모르겟네요 ㅠㅠ
ps -C process_name까지는 이해가 되는데 이 결과를 /dev/null로 저장(">")하면 어떻게 되는
지 이해가 안됩니다.
그리고 /dev/zero와 /dev/null의 차이가 뭔가요? 이 둘이 많이 쓰이더군요^^
"> /dev/null" 부분은
"> /dev/null" 부분은 괜히 "ps -C process_name"의 출력 결과가 화면에 찍히는 걸 막기 위해 표준 출력을 전환(redirect)시키는 것입니다. 검색을 통해 많은 자료들을 보실 수 있고, "man bash"에서 "REDIRECTION" 절을 보실 수도 있습니다.
/dev/zero와 /dev/null의 차이는 http://bbs.kldp.org/ 에서 "/dev/zero" 정도로 검색하시면 찾으실 수 있습니다. 하늘 아래 새로운 것은 없으니까요 :)
http://bbs.kldp.org/viewtopic.php?t=37665
----
$PWD `date`
$PWD `date`
댓글 달기