c/c++ 로 리눅스에서 프로그램의 이름을 가지고(예를들어 serverx라는 이름의프로그램) 이 실행중인지 알고 싶을때
어떤 방법을 사용하면 좋을까요..
ps 를 이용하시길 ^^
========================= CharSyam ^^ --- 고운 하루 =========================
저는 top 입니다. 보고 죽이고(조금 살벌) 메모리도 보고 좀비 있나도 보고 얼마나 전기를 낭비하면서 계속 켜놨나도 보고. 보고 또 보고 입니다.
주위에 리눅스 유저가 전무하므로, 콘솔 온니 모드에서 top 치고 나가 버리면 뭔가 일을 하고 있는 줄로 착각을 하더군요.^^ 화면보호기 치고는 너무 단조롭다는 지인도 있었음. :)
좋은 하루 되세요.
========================== 부양가족은 많은데, 시절은 왜 이리 꿀꿀할까요? ===================== "지금하는 일을 꼭 완수하자."
ps의 소스를 이용하세요. ps의 소스는 /proc 디렉토리에서 숫자로된 디렉토리 이름(그 숫자가 pid)을 가져옵니다. 숫자 디렉토리 안에 파일에는 프로세스에 대한 정보가 짜잘하게 기록되어 있습니다.
_____________________________ 언제나 맑고픈 샘이가...http://purewell.biz
ps 처럼 /proc 아래에 있는 정보를 이용하셔도 될 거 같고요.
간단하게는 아래처럼 그냥 popen() 써서 ps 의 결과를 가져와서 확인하는것도 될듯 싶습니다.
#include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(int argc, char **argv) { FILE *cmdpipe; char cmd[1024]; char result[1024]; pid_t pid; pid = getpid(); sprintf(cmd, "ps -eo fname | grep -vw %d | grep -w %s", pid , argv[1]); cmdpipe = popen( cmd, "r" ); if( fgets(result, 1024, cmdpipe) != NULL ) { printf("\nprocess \"%s\" exist!!\n", argv[1]); } pclose( cmdpipe ); return 0; }
텍스트 포맷에 대한 자세한 정보
<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]
ps 를 이용하시길 ^^
ps 를 이용하시길 ^^
=========================
CharSyam ^^ --- 고운 하루
=========================
저는 top 입니다. 보고 죽이고(조금 살벌) 메모리도 보고 좀비 있나도
저는 top 입니다. 보고 죽이고(조금 살벌) 메모리도 보고 좀비 있나도 보고 얼마나 전기를 낭비하면서 계속 켜놨나도 보고.
보고 또 보고 입니다.
주위에 리눅스 유저가 전무하므로, 콘솔 온니 모드에서 top 치고 나가 버리면 뭔가 일을 하고 있는 줄로 착각을 하더군요.^^ 화면보호기 치고는 너무 단조롭다는 지인도 있었음. :)
좋은 하루 되세요.
==========================
부양가족은 많은데, 시절은 왜 이리 꿀꿀할까요?
=====================
"지금하는 일을 꼭 완수하자."
[quote="charsyam"]ps 를 이용하시길 ^^[/quote]
ps의 소스를 이용하세요.
ps의 소스는 /proc 디렉토리에서 숫자로된 디렉토리 이름(그 숫자가 pid)을 가져옵니다. 숫자 디렉토리 안에 파일에는 프로세스에 대한 정보가 짜잘하게 기록되어 있습니다.
_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz
ps 처럼 /proc 아래에 있는 정보를 이용하셔도 될 거 같고요.
ps 처럼 /proc 아래에 있는 정보를 이용하셔도 될 거 같고요.
간단하게는 아래처럼 그냥 popen() 써서 ps 의 결과를 가져와서 확인하는것도 될듯 싶습니다.
댓글 달기