Lấy id quá trình cho tập lệnh perl hiện tại


11

Làm cách nào để có được id quy trình cho quy trình perl đang chạy tập lệnh hiện tại? getppid () không trả lại pid giống như ps -ea | grep. Có một cách dễ dàng hay tôi chỉ chạy lệnh ps -ea trong tập lệnh của mình và cắt bỏ các mẩu thông tin khác?


Có lẽ nên được di chuyển sang stackoverflow.com
Ian C.

Câu trả lời:


12

Bạn có thể sử dụng $$để lấy ID tiến trình của trình thông dịch perl đang chạy tập lệnh của bạn:

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

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

Trong một vỏ khác:

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

Để tìm hiểu thêm về các biến Perl đặc biệt:

perldoc perlvar

Hoặc xem phiên bản trực tuyến chính thức của thông tin đó .


2

Ngoài $$như Ian đề cập, tôi là một người hâm mộ làm cho mã dễ đọc hơn.

Cuối cùng, Perl hỗ trợ ghi nhớ $PIDnếu bạn use Englishbật bí danh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.