Tôi đang cố gắng sử dụng pidof hoặc pgrep để có thể gửi HUP tới một quy trình trong hệ thống của mình. Vấn đề là tôi chỉ muốn giết quá trình với một tham số chính xác.
Đây là đầu ra của 'ps awx'
657 ? S 0:00 processname software
658 ? S 0:00 processname demo
659 ? S 0:00 processname test
Bằng cách thực hiện một trong những điều sau:
pidof processname
pgrep processname
Bạn nhận được danh sách tất cả các quy trình bắt đầu bằng tên quy trình, nhưng tôi muốn làm một cái gì đó như:
pidof processname test
pgrep processname test
Để chỉ truy xuất PID tôi cần (trong ví dụ này sẽ là 659)
CẬP NHẬT
Bằng cách sử dụng cờ -f trên pgrep, chỉ cần thực hiện những gì tôi muốn, bằng cách thực hiện:
pgrep -f "processname test"
Bạn sẽ có câu trả lời đúng.
-f
bởi vì bạn muốn khớp trên dòng lệnh đầy đủ. Lưu ý rằng pgrep hoạt động trên các biểu thức thông thường, do đó bạn cũng có thể thực hiện khớp tương đối phức tạp.