현재 Perl 스크립트의 프로세스 ID 얻기


10

현재 스크립트를 실행하는 펄 프로세스의 프로세스 ID를 어떻게 얻습니까? getppid ()는 ps와 동일한 pid를 반환하지 않습니다 -ea | grep. 쉬운 방법이 있습니까? 아니면 스크립트 내에서 ps -ea 명령을 실행하고 다른 정보를 제거합니까?


아마 stackoverflow.com
Ian C

답변:


11

$$스크립트를 실행하는 perl 인터프리터의 프로세스 ID를 얻는 데 사용할 수 있습니다 .

iancs-imac:Documents ian$ cat test.pl 
print "$$\n";
sleep(10000);
exit()

ians-imac:Documents ian$ perl test.pl 
42291

다른 껍질에서 :

iancs-imac:~ ian$ sudo ps -ef | grep perl
  501 42291 42281   0   0:00.00 ttys000    0:00.01 perl test.pl
  501 42297 42280   0   0:00.00 ttys001    0:00.00 grep perl

특수 Perl 변수에 대해 자세히 학습하려면 다음을 수행하십시오.

perldoc perlvar

또는 해당 정보의 공식 온라인 버전을 참조하십시오 .


1

뿐만 아니라 $$이안 언급, 나는이 코드를 읽기 쉽게 만들기의 팬입니다.

이를 위해 Perl은 별명을 사용 가능하게하는 $PID경우 니모닉을 지원 use English합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.