Born Shell 에서 프로그램 pid 변수에 저장하기
글쓴이: wooix / 작성시간: 월, 2006/02/27 - 6:40오후
사용쉘은 bash가 아니 sh입니다. born 쉘에서
$> run.sh
과 같이 프로그램 실행 했을때 이녀석의 pid를 바로 특정 변수에 저장을 하고 싶습니다.
예를 들자면 어떤 script내에서
SomeVariable=`run.sh`
과 같이 했을 경우 run.sh이 실행되면 생성된 pid를 $SomeVariable에 넣어 버릴 수 없을까요? (저렇겐 안되겠지만 ^^;)
bash쓰다 sh쓰니까 답답하네요. 혹 sh에서 array를 처리하는 방법 아시는 분도 답글 환영입니다.
Forums:
그런 목적으로 쓰기 위해서, daemon 형태 또는 background로
그런 목적으로 쓰기 위해서, daemon 형태 또는 background로 동작하는 프로그램들은 pid 파일 (자신의 pid를 기록한 파일)을 만들어 두는 것이 일반적입니다. 따라서 shell script는 그 pid 파일만을 조사하면 되겠죠. 대개 /var/run 밑에 존재합니다. daemon에 따라서 특정 pid 파일을 지정할 수 있게 되어 있는 것도 많습니다.
저도 예전에 비슷한 의문이 있었는데, 위 이외의 경우는.. shell에서 쉽게 pid를 알 수 있는 방법이 존재하지 않습니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
pidof 란 프로그램을 써보세요. man 페이지를 일부 인용하면
pidof 란 프로그램을 써보세요. man 페이지를 일부 인용하면
Re: Born Shell 에서 프로그램 pid 변수에 저장하기
bash 에서는 $! 로 마지막 백그라운드로 실행된 프로세스 번호를 얻어올 수 있습니다만.. sh 에서도 될런지는 모르겠네요.
War doesnt determine whos right, just whos left.
답변 감사합니다.
제가 글을 자세히 쓰지 않아 많은 분들께 심려를 끼친것 같네요.. 죄송합니다. :oops:
aix server 라서 /var/run은 보이지 않더군요.
pidof라는 프로그램도 역시 찾기 힘들고요..
늦은 시간에 구글링 하다가 $!를 찾아서 문제를 해결하고 아침에 자답 하려고 왔더니 ai 님이 답을 올려 주셨네요.. 감사합니다.
저의 경우 특정 job을 nohup걸어 두고 wait 을 이용해서 job이 죽었을때 일을 처리하는게 목적이였는데 대충 맞아 떨어진것 같네요.. 답분해 주신 분들께 감사드립니다. :D
평온하다~
댓글 달기