获取当前Perl脚本的进程ID


11

如何获取正在运行当前脚本的perl进程的进程ID?getppid()不返回与ps -ea |相同的pid。grep。有没有一种简单的方法,还是只在脚本中运行ps -ea命令并修剪掉其他信息?


应该应该迁移到stackoverflow.com
Ian C.

Answers:


13

您可以$$用来获取运行脚本的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

或者查看该信息的官方在线版本


2

除了$$Ian提到的那样,我还是使代码更具可读性的爱好者。

为此,$PID如果您use English启用别名,Perl支持助记符。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.