Geçerli perl betiği için işlem kimliği alma


11

Geçerli komut dosyasını çalıştıran perl işlemi için işlem kimliğini nasıl alabilirim? getppid () ps -ea ile aynı pideyi döndürmez | grep. Kolay bir yolu var mı yoksa sadece betiğimin içindeki ps -ea komutunu çalıştırıp diğer bilgi parçalarını mı keserim?


Muhtemelen stackoverflow.com'a taşınmalı
Ian C.

Yanıtlar:


13

$$Komut dosyanızı çalıştıran perl yorumlayıcısının işlem kimliğini almak için kullanabilirsiniz :

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

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

Başka bir kabukta:

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

Özel Perl değişkenleri hakkında daha fazla bilgi edinmek için:

perldoc perlvar

Veya bu bilgilerin resmi çevrimiçi sürümüne bakın .


2

Ek olarak $$Ian bahseder gibi ben kod daha okunabilir hale hayranıyım.

Bu amaçla, Perl anımsatıcı destekliyorsa $PIDeğer use Englishadlar etkinleştirmek için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.