Obtendo o ID do Processo para o Script Perl Atual

11

Como obtenho a identificação do processo perl que está executando o script atual? getppid () não retorna o mesmo pid que ps -ea | grep. Existe uma maneira fácil ou apenas executo o comando ps -ea no meu script e apare as outras informações?

ageis23
fonte
Provavelmente deve ser migrado para o stackoverflow.com #
Ian C.

Respostas:

13

Você pode usar $$para obter o ID do processo do interpretador perl executando seu script:

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

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

Em outra concha:

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

Para saber mais sobre variáveis ​​Perl especiais:

perldoc perlvar

Ou consulte a versão online oficial dessas informações .

Ian C.
fonte
2

Além de $$como Ian menciona, sou fã de tornar o código mais legível.

Para esse fim, o Perl suporta o mnemônico $PIDse você use Englishativar os aliases.

Randall
fonte