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?


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 .


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.