คำถามติดแท็ก kill

kill - ส่งสัญญาณที่ระบุไปยังกระบวนการหรือกลุ่มกระบวนการ

14
เกิดอะไรขึ้นถ้า 'kill -9' ไม่ทำงาน?
ฉันมีกระบวนการที่ฉันไม่สามารถฆ่าkill -9 <pid>ได้ มีปัญหาอะไรในกรณีเช่นนี้โดยเฉพาะอย่างยิ่งเมื่อฉันเป็นเจ้าของกระบวนการนั้น ฉันคิดว่าไม่มีสิ่งใดสามารถเลี่ยงkillทางเลือกนั้นได้
467 process  kill 

9
เมื่อใดที่ฉันไม่ควรฆ่ากระบวนการ -9
ฉันมักจะลังเลที่จะวิ่งkill -9แต่ฉันเห็นผู้ดูแลคนอื่นทำเกือบเป็นประจำ ฉันคิดว่าอาจมีพื้นกลางที่เหมาะสมดังนั้น: ควรkill -9ใช้เมื่อใดและเพราะเหตุใด เมื่อใดและเพราะเหตุใด สิ่งที่ควรลองก่อนทำ การดีบักกระบวนการ "หยุด" ชนิดใดที่อาจทำให้เกิดปัญหาเพิ่มเติม

8
จะยุติกระบวนการพื้นหลังได้อย่างไร?
ฉันได้เริ่มต้น wget &บนเครื่องระยะไกลในพื้นหลังใช้ ทันใดนั้นมันก็หยุดดาวน์โหลด ฉันต้องการที่จะยุติกระบวนการของมันแล้วเรียกใช้คำสั่งอีกครั้ง ฉันจะยุติมันได้อย่างไร ฉันไม่ได้ปิดหน้าต่างเชลล์ แต่เท่าที่ทราบมันไม่ได้หยุดการใช้Ctrl+ Cและ+CtrlZ

7
จะฆ่าแมวที่หนีไม่พ้นได้อย่างไร
หลายครั้งที่ฉันรันcatคำสั่งบนไฟล์ที่มีเนื้อหามากถึงสองสามพันบรรทัดโดยไม่ตั้งใจ ฉันพยายามฆ่าcatคำสั่งด้วยCtrl+ CหรือCtrl+ Zแต่ทั้งคู่จะมีผลเฉพาะหลังจากที่แสดงผลลัพธ์ทั้งหมดcatในเทอร์มินัลดังนั้นฉันต้องรอจนกว่าcatจะได้รับการดำเนินการอย่างสมบูรณ์ มีวิธีแก้ปัญหาที่ดีกว่าที่หลีกเลี่ยงการรอ? เพราะบางครั้งไฟล์มีขนาดไม่เกิน 100MB และทำให้เกิดความรำคาญที่จะรอ tcshฉันใช้
128 shell  terminal  kill  cat  tcsh 

3
ลินุกซ์“ ฆ่า” กระบวนการอย่างไร?
บ่อยครั้งที่ทำให้ฉันงงงันแม้ว่าฉันจะทำงานกับคอมพิวเตอร์เป็นเวลาหลายสิบปีและลีนุกซ์เป็นเวลาสิบปี แต่ฉันก็ยังใช้งานฟังก์ชั่นส่วนใหญ่ของระบบปฏิบัติการได้เหมือนกล่องดำ วันนี้ฉันคิดเกี่ยวกับkillคำสั่งและในขณะที่ฉันใช้มันหลายครั้งต่อวัน (ทั้งใน "ปกติ" และ-9รสชาติ) ฉันต้องยอมรับว่าฉันไม่รู้ว่ามันใช้งานได้อย่างไรอยู่เบื้องหลัง จากมุมมองของฉันหากกระบวนการทำงานเป็น "หยุด" ฉันเรียกkillใช้ PID ของมันและจากนั้นจะไม่ทำงานอีกต่อไป มายากล! เกิดอะไรขึ้นจริง ๆ หน้าพูดคุยเกี่ยวกับ "สัญญาณ" แต่แน่นอนว่าเป็นเพียงนามธรรม การส่งkill -9ไปยังกระบวนการไม่ต้องการความร่วมมือของกระบวนการ (เช่นการจัดการสัญญาณ) มันแค่ฆ่ามันออกไป Linux หยุดกระบวนการไม่ให้ใช้เวลา CPU ต่อไปอย่างไร มันถูกลบออกจากการตั้งเวลา? มันยกเลิกการเชื่อมต่อกระบวนการจากตัวจัดการไฟล์ที่เปิดอยู่หรือไม่? หน่วยความจำเสมือนของกระบวนการเปิดตัวอย่างไร มีบางสิ่งที่เหมือนตารางทั่วโลกในหน่วยความจำที่ลีนุกซ์อ้างอิงทรัพยากรทั้งหมดที่เกิดขึ้นจากกระบวนการและเมื่อฉัน "ฆ่า" กระบวนการลีนุกซ์จะผ่านตารางนั้นและปลดปล่อยทรัพยากรทีละตัว? ฉันอยากรู้ทุกอย่างจริงๆ!

11
ฆ่าหลายอินสแตนซ์ของกระบวนการทำงานด้วยคำสั่งเดียว
สมมติว่าฉันมีหนึ่งพันหรือมากกว่าอินสแตนซ์ของกระบวนการใด ๆ (ตัวอย่างเช่นvi) ทำงาน ฉันจะฆ่าพวกเขาทั้งหมดในหนึ่งนัดเดียว / คำสั่งหนึ่งบรรทัด / คำสั่งเดียวได้อย่างไร
75 process  kill 


2
Linux จะเริ่มฆ่ากระบวนการของฉันโดยไม่ถามฉันหรือไม่ว่าหน่วยความจำสั้น
ฉันใช้เชลล์สคริปต์พร้อมคำสั่งเพื่อรันโปรแกรมที่ใช้หน่วยความจำมาก (2-5 GB) กลับไปด้านหลัง เมื่อฉันกลับไปตรวจสอบความคืบหน้าของสคริปต์ของฉันฉันรู้สึกประหลาดใจที่พบว่ากระบวนการบางอย่างของฉันเป็นKilledไปตามที่สถานีของฉันรายงานให้ฉัน มีหลายโปรแกรมที่ทำเสร็จแล้วอย่างต่อเนื่องก่อนที่โปรแกรมที่จะKilledเริ่มในภายหลังแต่โปรแกรมทั้งหมดหลังจากนั้นล้มเหลวในการแบ่งส่วนความผิดพลาด (ซึ่งอาจหรืออาจไม่ได้เกิดจากข้อผิดพลาดในรหัสของฉันอ่านต่อไป) ฉันดูประวัติการใช้งานของคลัสเตอร์เฉพาะที่ฉันใช้และเห็นว่ามีคนเริ่มใช้กระบวนการที่ใช้หน่วยความจำจำนวนมากในเวลาเดียวกันและในการทำเช่นนั้นทำให้หน่วยความจำจริงหมดลง (และอาจเป็นพื้นที่ swap) ในคลัสเตอร์ ดีที่สุดเท่าที่ฉันจะเข้าใจได้กระบวนการที่ใช้หน่วยความจำมากเหล่านี้เริ่มทำงานในเวลาเดียวกับที่ฉันเริ่มมีปัญหากับโปรแกรมของฉัน เป็นไปได้ไหมที่ลีนุกซ์ฆ่าโปรแกรมของฉันเมื่อหน่วยความจำไม่เพียงพอ? และเป็นไปได้ไหมที่การแบ่งส่วนที่ผิดพลาดที่ฉันได้รับในภายหลังนั้นเกิดจากการขาดหน่วยความจำที่พร้อมใช้งานเพื่อเรียกใช้โปรแกรมของฉัน (แทนที่จะเป็นจุดบกพร่องในรหัสของฉัน)?

3
`kill -0` ทำอะไร
ฉันเพิ่งเจอสิ่งนี้ในเชลล์สคริปต์ if ! kill -0 $(cat /path/to/file.pid); then ... do something ... fi อะไรkill -0 ...ทำอย่างไร
61 shell  process  kill 

4
รหัสการออกเริ่มต้นเมื่อกระบวนการยุติลง?
เมื่อกระบวนการถูกฆ่าด้วยสัญญาณที่จับได้เช่นSIGINTหรือSIGTERMแต่ไม่จัดการสัญญาณสิ่งที่จะเป็นรหัสทางออกของกระบวนการ? สิ่งที่เกี่ยวกับสัญญาณที่SIGKILLไม่สามารถจัดการได้เป็นอย่างไร จากสิ่งที่ผมสามารถบอกได้ฆ่ากระบวนการที่มีSIGINTผลแนวโน้มในรหัสทางออก130แต่ที่แตกต่างกันโดย kernel หรือการดำเนินเปลือก? $ cat myScript #!/bin/bash sleep 5 $ ./myScript <ctrl-c here> $ echo $? 130 ฉันไม่แน่ใจว่าฉันจะทดสอบสัญญาณอื่น ๆ ได้อย่างไร ... $ ./myScript & $ killall myScript $ echo $? 0 # duh, that's the exit code of killall $ killall -9 myScript $ echo $? 0 # …

4
Linux: ฆ่ากระบวนการตามอาร์กิวเมนต์
ฉันจะฆ่ากระบวนการตามอาร์กิวเมนต์บรรทัดคำสั่งได้อย่างไร killall, pgrepและpkillดูเหมือนว่าจะใช้งานได้ตามชื่อกระบวนการเท่านั้น ฉันต้องการสิ่งนี้เพื่อให้สามารถแยกแยะความแตกต่างระหว่างจำนวนของแอปพลิเคชันที่ทำงานภายใน Java virtual machine ซึ่งjavaเป็นชื่อกระบวนการสำหรับพวกเขาทั้งหมดและชื่อแอปพลิเคชันที่แท้จริงสามารถพบได้โดยดูที่อาร์กิวเมนต์บรรทัดคำสั่ง สิ่งนี้สามารถทำได้ด้วยตัวเองps aux | grep myapp.jarแล้วฆ่า pid จากเอาต์พุตด้วยตนเอง แต่ฉันต้องการให้คำสั่งทำสิ่งที่เทียบเท่าโดยอัตโนมัติ
54 linux  kill 

4
ความแตกต่างระหว่าง pkill และ killall คืออะไร?
ฉันรู้ว่ามีกฎการกรองมากกว่าpkill killallคำถามของฉันคืออะไรความแตกต่างระหว่าง: pkill [signal] name และ killall [signal] name ฉันอ่านแล้วว่าkillallมีประสิทธิภาพมากกว่าและฆ่ากระบวนการและกระบวนการย่อยทั้งหมด (และเรียกซ้ำ) ที่ตรงกับnameโปรแกรม pkillไม่ทำเช่นนี้ด้วย?

1
เหตุใดการเรียกระบบ kill ของ UNIX จึงเรียกว่า 'kill'
ฉันอยากรู้เกี่ยวกับประวัติของชื่อดูเหมือนว่าการเรียกระบบ 'ฆ่า' อาจมีชื่อว่า 'สัญญาณ' และการเรียกของระบบ 'สัญญาณ' อาจถูกตั้งชื่อว่า 'จัดการ' ฉันสงสัยว่าการใช้การเรียกใช้ระบบดั้งเดิมอาจเป็นเพียงการฆ่ากระบวนการอื่นและการใช้งานอาจขยายไปสู่กลไกการส่งสัญญาณทั่วไปมากขึ้นตามที่ระบบพัฒนาขึ้น - แต่นี่เป็นการคาดเดาในส่วนของฉัน มีใครรู้บ้าง
41 kill  history 

6
การกด ctrl-c หลาย ๆ ครั้งทำให้โปรแกรมที่กำลังรันปิดเร็วขึ้นหรือไม่?
ฉันมักจะเริ่มอ่านไฟล์ขนาดใหญ่แล้วต้องการออกหลังจากนั้นไม่นาน แต่มีความล่าช้าในการกดCtrl+ Cเพื่อหยุดโปรแกรม มีโอกาสที่จะลดความล่าช้าโดยการกดปุ่มCtrl+ Cหลาย ๆ ครั้งหรือไม่? หรือฉันจะสูญเสียการกดคีย์ของฉัน
41 process  kill  signals 

4
ฉันจะออกหรือยกเลิกคำสั่ง bash ที่ไม่ดีได้อย่างไร
ฉันคาดว่าจะได้รับสะเก็ดระเบิดนี้ แต่ฉันไม่สามารถหาคำตอบได้ทุกที่ ดูเหมือนว่ามันควรจะชัดเจน บางครั้งเมื่อฉันพิมพ์คำสั่งที่ไม่ดีในเทอร์มินัล bash เคอร์เซอร์เพิ่งกระโดดลงไปที่บรรทัดถัดไปโดยไม่มีข้อผิดพลาดหรืออะไร ฉันไม่สามารถบอกสิ่งที่ฉันทำผิด มันเหมือนกับว่าฉันติดอยู่ในโปรแกรม แนคท์: $ tidy ฉัน: "อ๊ะ! นั่นไม่ใช่สิ่งที่ฉันต้องการพิมพ์ ... " :q ฉัน: "นั่นไม่ได้ผล ... " :exit :quit exit quit /exit /quit -exit -quit -wtf??? ฉันรู้ว่าฉันเมาแล้ว แต่ฉันจะกลับไปที่พรอมต์ได้อย่างไรโดยไม่ต้องปิดเครื่อง

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