bash에서 다음 명령 pid 알아내기.
글쓴이: cinsk / 작성시간: 수, 2005/01/19 - 10:52오후
지금 XXX라는 프로그램을 실행하려고 합니다.
이 프로그램을 background로 실행하고, 그 pid를 알아낼 수 있을까요?
매뉴얼을 보니까 $!가 바로 전에 실행한 background 명령의 pid를 알아낸다고 하는 군요. 그럼 다음과 같이 만들었다치고:
#!/bin/bash XXX & pid=$! ...
라고 했을 때, 반드시 $pid에 XXX의 pid가 들어오는 것일까요? 아니면, 다른 terminal에서 실행한 명령이 XXX & 실행 바로 후, pid=$!를 실행하기 전에 실행되어, 다른 프로세스의 pid가 들어올 확율이 있을까요?
Forums:
실험을 해보면 다른 쉘에서 실행한 것들은 이쪽 쉘에 전혀 영향을 안주는
실험을 해보면 다른 쉘에서 실행한 것들은 이쪽 쉘에 전혀 영향을 안주는 것을 알 수 있습니다.
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
시스템 전체에서 바로 직전에 실행한 pid를 구하는 것이 더 어려워 보이
시스템 전체에서 바로 직전에 실행한 pid를 구하는 것이 더 어려워 보이는걸요?
바로 이전에 fork 한 자식 pid를 구하는 것이 더 쉬워 보이는군요.
$! 는 안전하게 바로 직전의 백그라운드 프로세스를 구하는데 자주 사용되며, 특히 쉘을 이용하여 서버를 실행시키고 죽는지 감시하여 다시 계속 실행 시키거나, pid를 기록하지 않는 서버의 pid 파일을 기록하게 만드는데 자주 사용됩니다.
---
http://coolengineer.com
댓글 달기