ฉันกำลังพยายามใช้ pidof หรือ pgrep เพื่อให้สามารถส่ง HUP ไปยังกระบวนการในระบบของฉัน ปัญหาคือฉันต้องการฆ่ากระบวนการด้วยพารามิเตอร์ที่แม่นยำเท่านั้น
นี่คือผลลัพธ์ของ 'ps awx'
657 ? S 0:00 processname software
658 ? S 0:00 processname demo
659 ? S 0:00 processname test
โดยทำสิ่งใดสิ่งหนึ่งต่อไปนี้:
pidof processname
pgrep processname
คุณจะได้รับรายการกระบวนการทั้งหมดที่เริ่มต้นด้วย processname แต่ฉันต้องการทำบางสิ่งเช่น:
pidof processname test
pgrep processname test
เพื่อดึงข้อมูล PID ที่ฉันต้องการเท่านั้น (ในตัวอย่างนี้จะเป็น 659)
UPDATE
โดยใช้แฟล็ก -f บน pgrep ทำสิ่งที่ฉันต้องการโดยทำ:
pgrep -f "processname test"
คุณจะได้คำตอบที่ถูกต้อง
-f
เพราะคุณต้องการจับคู่ในบรรทัดคำสั่งแบบเต็ม โปรดทราบว่า pgrep ทำงานกับนิพจน์ทั่วไปดังนั้นคุณสามารถทำการจับคู่ที่ค่อนข้างซับซ้อนได้เช่นกัน