วิธีฆ่ากระบวนการไพ ธ อนทั้งหมดยกเว้นกระบวนการหนึ่งจากการทุบตี


11

ฉันจะฆ่าจากการทุบตีกระบวนการหลามทั้งหมดโดยไม่รวมสคริปต์หลามได้อย่างไร (ฉันรู้ชื่อของมัน แต่บางครั้ง pid สามารถเปลี่ยนได้)

ฉันต้องการชนิดpkill -f "python"แต่ไม่รวมสคริปต์เฉพาะของไพ ธ อน

กรุณาแนะนำ

คำตอบ:


13

ps aux |grep python |grep -v 'pattern_of_process_you_dont_want_to_kill' |awk '{print $2}' |xargs kill

ปรับปรุง: คำอธิบายทีละขั้นตอนตามที่ร้องขอในความคิดเห็น

  • ps aux |grep python- แสดงกระบวนการทั้งหมดซึ่งเป็นpythonรูปแบบการ จับคู่
  • grep -v 'pattern_of_process_you_dont_want_to_kill' - ยกเว้นกระบวนการที่คุณไม่ต้องการฆ่า
  • awk '{print $2}' - แสดงฟิลด์เอาต์พุตที่สองเป็น PID
  • xargs kill- ใช้killคำสั่งกับแต่ละอินพุต ARG (PID)

หากคุณไม่คุ้นเคยกับxargsคำสั่งฉันขอแนะนำให้คุณไม่ต้องกังวลหากคุณไม่เข้าใจในทันที มันอาจดูค่อนข้างยุ่งยากเป็นครั้งแรก ฉันโพสต์ตัวอย่างการใช้งานที่ง่ายมากคุณอาจ google ได้มากกว่านี้


1
เยี่ยมมาก แต่คุณสามารถอธิบายได้ว่ามันทำงานอย่างไรตัวอย่างเช่น awk '{print $ 2}' และ xargs kill เป็นอย่างไร
user370717

awk '{print $2}' - พิมพ์ฟิลด์ที่สองของการส่งออกในกรณีที่มันเป็นปัจจุบันps ใช้คำสั่งกับผู้ใช้แต่ละคนPIDxargskillPID
1700494

1
การใส่ความคิดเห็นนั้นเป็นสิ่งที่ดี แต่ฉันต้องการให้คะแนนคำตอบของคุณหลังจากความคิดเห็นที่มีการจัดรูปแบบที่ดีนั้นได้ถูกรวมเข้ากับคำตอบของคุณ
ลูกไก่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.