2013-10-25 1 views
2

스크립트가 프로세스를 시작한 후 $!과 함께 PID를 수집 한 직후 시스템에서 스크립트가 프로세스를 시작한 시점과 스크립트가 프로세스를 시작한 시점 사이에 프로세스가 시작된 경우 잘못된 PID를 얻을 수 있습니까? PID가 $!입니까?

답변

2

특수 변수특수 변수는 현재 쉘이 시작한 마지막 하위 프로세스의 PID를 보유합니다. 시스템의 다른 프로세스에서 발생하는 작업으로 수정되지 않습니다. 당신 자신이 값을 수집하기 전에 새 자식 프로세스를 시작하는 경우가 때마다 덮어 있기 때문에

$!은 잘못 될 수 있습니다. 예를 들어, 다음은 "processX"의 PID 손실되고 "processY"의 PID가 인쇄됩니다 :

processX & 
processY & 

echo Child process PID: $!