Mendapatkan id proses untuk skrip perl saat ini


11

Bagaimana cara mendapatkan id proses untuk proses perl yang menjalankan skrip saat ini? getppid () tidak mengembalikan pid yang sama dengan ps -ea | grep. Apakah ada cara mudah atau apakah saya hanya menjalankan perintah ps -ea dalam skrip saya dan memotong info lainnya?


Mungkin harus dimigrasikan ke stackoverflow.com
Ian C.

Jawaban:


13

Anda dapat menggunakan $$untuk mendapatkan ID proses penerjemah perl yang menjalankan skrip Anda:

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

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

Di shell lain:

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

Untuk mempelajari lebih lanjut tentang variabel Perl khusus:

perldoc perlvar

Atau lihat versi online resmi dari informasi itu .


2

Selain $$sebagai Ian menyebutkan, aku penggemar membuat kode lebih mudah dibaca.

Untuk itu, Perl mendukung mnemonik $PIDjika Anda use Englishmengaktifkan alias.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.