Score:1

pkill ไม่ได้ฆ่า

ธง tm

ฉันพยายามฆ่ากระบวนการโดยใช้ pkill -9 <pid>

เมื่อใดก็ตามที่ฉันเรียกใช้คำสั่งนั้นจะไม่ส่งคืนสิ่งใดและกระบวนการจะไม่ถูกฆ่าเช่นกัน

ฉันจะดำเนินการต่อไปได้อย่างไร

แก้ไข:

ฉันโง่ที่พยายามใช้ พีคิล กับปิ๊ด. พีคิล ใช้ชื่อกระบวนการไม่ใช่ pid ฆ่า เป็นคำสั่งที่ใช้ pid ตามที่ระบุในคำตอบที่ยอมรับ

อย่างไรก็ตามคำตอบอื่น ๆ ที่ใช้งานได้จริงนั้นอธิบายถึงความเป็นไปได้ที่แท้จริงของ pkill ที่ไม่ฆ่าและเขียนได้ดีมาก

pierrely avatar
cn flag
คิลออลทางเลือก -9 และอาจเรียกใช้เป็น sudo คุณยังสามารถรับ "$(pidof )" เมื่อคุณต้องการตัวเลข และคุณอาจได้รับหลายตัว (เช่น Firefox และเป็นหน้าต่างตัวจัดการการดาวน์โหลด คุณจะต้องผ่านอาร์เรย์จาก pidof นั้น
Score:6
ธง bd

ถ้าฉันจำไม่ผิด (ฉันไม่เคยใช้) pkill ใช้ชื่อกระบวนการ ไม่ใช่ PID เพื่อใช้ PID ให้ใช้ kill แทน pkill

user10489 avatar
in flag
จุดดี. กระบวนการจะไม่ตายหากคุณพลาดเมื่อคุณพยายามที่จะฆ่ามัน โดยทั่วไปแล้ว pkill จะค้นหาเฉพาะชื่อคำสั่งเท่านั้น pkill -a หรือ -f ค้นหาอาร์กิวเมนต์คำสั่งด้วย แต่สิ่งนี้อันตรายและอาจฆ่ามากเกินไป ฉันแนะนำให้ใช้ pgrep ก่อน pkill เพื่อดูว่าคุณจับคู่อะไรจริง ๆ หรือไม่
Score:4
ธง in

มีเหตุผลสามประการว่าทำไม kill -9 จะไม่ฆ่ากระบวนการ (หน้าคนแก่ระบุว่าสิ่งนี้เป็น "ฆ่าด้วยอคติอย่างยิ่ง" กระบวนการไม่สามารถหลีกเลี่ยง -9 ได้ แต่ทำได้เพียงชะลอการตายของมันเท่านั้น)

คุณสามารถตรวจสอบกระบวนการกับ ps -O สถิติ -p 1234 ตัวอย่างเช่น. ตรวจสอบคอลัมน์สถานะ (S):

เหตุผลสามประการที่ทำให้กระบวนการไม่ตายทันทีตั้งแต่ -9 คือ:

  • มันตายแล้ว -- มันเป็นซอมบี้ (status=Z) มันจะหายไปเมื่อพาเรนต์รอมัน (และรวบรวมซอมบี้) หรือโปรเซสพาเรนต์ตายเอง
  • มันติดอยู่ในเครื่องรอ (สถานะ=D) วิธีเดียวที่จะกำจัดสิ่งเหล่านี้คือให้อุปกรณ์ปล่อยหรือรีบูต การดำเนินการนี้อาจต้องรอหรือใช้อุปกรณ์ทางกายภาพ หรือวิธีอื่นนอกแบนด์เพื่อ "เตะ" อุปกรณ์ที่ติดอยู่ (และในบางกรณีที่พบไม่บ่อย การรีบูตจะล้มเหลวและหยุดทำงาน และคุณจะต้องเปิดเครื่องใหม่)
  • มันถูกระงับ (สถานะ = T) ซึ่งในกรณีนี้ kill -9 จะฆ่ามัน แต่จะไม่ตายจริง ๆ จนกว่ากระบวนการจะกลับมาทำงานต่อ (kill -CONT)

คำสั่ง kill ส่งคืนบางสิ่งจริง ๆ แม้ว่าจะสำเร็จ แต่จะไม่ส่งคืน พิมพ์ อะไรก็ตาม. คำสั่งทั้งหมดมีค่าตอบแทน สามารถตรวจสอบได้ด้วย ก้อง $? ทันทีหลังจากรันคำสั่ง ถ้าค่าที่ส่งกลับเป็น 0 แสดงว่าการฆ่าสำเร็จและไม่มีอะไรพิมพ์ออกมา ค่าอื่นๆ เป็นข้อผิดพลาด และควรพิมพ์ข้อผิดพลาดนั้น ข้อผิดพลาดที่เป็นไปได้อาจถูกปฏิเสธการอนุญาต (หรือการดำเนินการไม่ได้รับอนุญาต) และไม่มีกระบวนการดังกล่าว pkill มีข้อผิดพลาดเล็กน้อยที่น่าสนใจกว่าเล็กน้อย

คำถามนี้เป็นภาษาอื่นๆ:

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา