답변:
마지막으로 실행 된 명령의 PID는 $!쉘 변수에 있습니다.
my-app &
echo $!
/bin/sh -c 'echo $$>/tmp/my.pid && exec program args' &- 11월 24일 '10 sysfault 14시 28분에
echo $!
my-app & myVar=$! ; fg. fg프로세스를 다시 포 그라운드로 만듭니다. echo $myVar나중에 인쇄 할 수 있으며 my-app가 이미 완료된 것입니다.
입수 PID:
#!/bin/bash
my-app &
echo $!
PID변수로 저장 :
#!/bin/bash
my-app &
export APP_PID=$!
모든 인스턴스 PID를 텍스트 파일로 저장하십시오 .
#!/bin/bash
my-app &
echo $! >>/tmp/my-app.pid
출력, 오류 및 PID분리 된 파일을 저장하십시오 .
#!/bin/bash
my-app >/tmp/my-app.log 2>/tmp/my-app.error.log &
echo $! >>/tmp/my-app.pid
echo "my-app PID's: $(cat /tmp/my-app.pid)"
my-app완료 된 인스턴스 와 나중에 PID가 더 재사용되는 경우 파일에 잘못된 정보가 있다는 점을 제외하고는 허용되는 것과 거의 동일 합니다. 이 답변이 기존의 승인 된 답변에 많은 가치를 더한다고 생각하지 않습니다
sleep 4 | grep INVALID & export MY_PID=$!; fg; echo $MY_PID returned with $?`
main &PID를 잡는 방법?