บางครั้งกระบวนการจะไม่สนใจสัญญาณ SIGINT ที่ส่งโดยCtrl- Cใน Bash ยกตัวอย่างเช่นและman
vi
สมมติว่าคุณไม่ต้องการ google หรืออ่านคู่มือเกี่ยวกับวิธีออกจากกระบวนการทำงานมีลำดับของคีย์ใดบ้างที่จะใช้งานได้ตลอดเวลา (โดยไม่ต้องออกจากเทอร์มินัล)
บางครั้งกระบวนการจะไม่สนใจสัญญาณ SIGINT ที่ส่งโดยCtrl- Cใน Bash ยกตัวอย่างเช่นและman
vi
สมมติว่าคุณไม่ต้องการ google หรืออ่านคู่มือเกี่ยวกับวิธีออกจากกระบวนการทำงานมีลำดับของคีย์ใดบ้างที่จะใช้งานได้ตลอดเวลา (โดยไม่ต้องออกจากเทอร์มินัล)
คำตอบ:
ส่งSIGQUITสัญญาณ+Ctrl\
.. $ sleep 10
^\Quit
kill -3 pid
→นี้จะเทียบเท่ากับ โปรแกรมที่ทำงานในพื้นที่ผู้ใช้อย่าเพิกเฉย sigquit
นอกจากนี้ยังมีชุดแป้นพิมพ์ลัดMagic SysRq Altหนึ่งในคนที่น่าสนใจมากขึ้นคือ: SysRq+ k+ มันฆ่าทุกกระบวนการบนคอนโซลเสมือนปัจจุบัน หากหนึ่งใน ttys ของคุณเสียหายอย่างสมบูรณ์และสมบูรณ์ที่สุดสิ่งนี้สามารถใช้เพื่อย้อนกลับไปได้ บน tty ที่รัน X.org มันสามารถใช้เพื่อฆ่า X โดยปราศจากความเมตตา
คีย์ SysRq นั้นบนแป้นพิมพ์ส่วนใหญ่เหมือนกับปุ่มพิมพ์ ในสมุดบันทึกของฉันสามารถเรียกใช้งานได้โดยใช้ปุ่ม Fn Ie Alt → Fn →พิมพ์→ k ตามลำดับ
นี่คือทางลัดการจัดการกระบวนการพื้นฐานบางส่วน:
bg
เพื่อดำเนินการต่อในพื้นหลังfg
เพื่อเพิ่มเป็นส่วนหน้า)หมายเหตุ: Ctrl+ Zในทางตรงกันข้ามกับCtrl+ CและCtrl+ \, ยังสามารถใช้ได้กับman
, vi
, less
และไม่ชอบ
เมื่อสงสัยขั้นตอนการ follwing มักจะใช้ได้เสมอ:
~$ sleep 10
^Z
[5]+ Stopped sleep 10
~$ ps
PID TTY TIME CMD
4804 pts/0 00:00:00 bash
6207 pts/0 00:00:00 sleep
6208 pts/0 00:00:00 ps
~$ kill -9 6207
[5]+ Killed sleep 10
~$
^ Z แน่นอนแสดงว่าได้กดCtrl+ Zแล้ว
หากต้องการข้อมูลเชิงลึกเกี่ยวกับเชลล์และเทอร์มินัลเพิ่มเติมโปรดดูคำตอบของฉันที่:
ps
เพื่อดูกระบวนการ id ของพวกเขาและฆ่าพวกเขาใช้kill pid
หรือถ้าคุณไม่สนใจเกี่ยวกับกรณีอื่น ๆ killall vi
ของโปรแกรม ไม่ว่าในกรณีใด ๆ Ctrl-Z ดูเหมือนว่าจะทำงานเสมอ
kill %%
เพื่อฆ่างานที่ผ่านมาและkill %5
ที่ 5 jobs
คือจำนวนงานที่แสดงใน
Ctrl
+ \
เมื่อไม่มี\
คีย์ในรูปแบบแป้นพิมพ์ได้อย่างไร
บางครั้งCTRL+Cการส่งไปยังโปรแกรมผิดหรือช่องสัญญาณเข้า นี่เป็นเรื่องธรรมดาโดยเฉพาะอย่างยิ่งกับโปรแกรมแก้ไขเช่นvi
, ด้วยคำสั่งที่มีเอาต์พุตแบบไพพ์, คำสั่ง bash ที่ซับซ้อนที่เกี่ยวข้องกับลูป, เป็นต้น
ทางออกที่ง่ายและรวดเร็วคือการหยุดงานCTRL+Zแล้วฆ่าด้วยหมายเลขงาน: kill %1
หรือkill -9 %1
อื่น ๆ
ลองหนึ่งในสิ่งเหล่านี้:
Ctrl+4
Ctrl+\
หรือ:
Ctrl+ Zจากนั้นเรียกใช้:
kill %1
ที่ไหน%1
เป็นจำนวนของงานซึ่งถูกส่งกลับเมื่อคุณกด-Control Zเพิ่ม-9
เพื่อบังคับให้ฆ่า
เมื่อคุณอยู่ในคอนโซลข้อความคุณยังสามารถลอง: -Ctrl SysRqเคอร์เนลควรฆ่ากระบวนการ
หรือSysRq- kฆ่ากระบวนการทั้งหมดบนคอนโซลเสมือนปัจจุบัน (สามารถฆ่าโปรแกรม X และ svgalib ได้เช่นกัน)
หมายเหตุ: เมื่อใช้คีย์ Magic SysRq เพื่อฆ่าโปรแกรมกราฟิกแช่แข็งโปรแกรมจะไม่มีโอกาสกู้คืนโหมดข้อความ สิ่งนี้สามารถทำให้ทุกอย่างอ่านไม่ได้
โปรดดู: คีย์ Magic SysRq และชุดคำสั่ง
หากต้องการออกจากผู้ชายให้ใช้q
เพื่อออกจากการใช้vi:q
เป็นไปได้ว่าคุณเปลี่ยนทางลัดของการคัดลอกจาก:
CTRL+ SHIFT+C
ไปยัง
CTRL+C
ด้วยวิธีนี้เมื่อคุณพยายามฆ่ากระบวนการCTRL+ Cจะไม่ทำงาน
พยายามที่จะเปลี่ยนทางลัดสำเนาไปCTRL+ +SHIFTC
ลองCtrl+ Alt+Backspace
หากคุณใช้ Ubuntu 10.04 คุณต้องการเปิดใช้งานปุ่มนี้เพื่อใช้งาน
เพื่อเปิดใช้งานControl- Alt-Backspace
ระบบ Goto -> การตั้งค่า -> คีย์บอร์ด
เลือกแท็บรูปแบบและคลิกที่ตัวเลือกเค้าโครง
เลือกลำดับที่สำคัญที่จะฆ่าเซิร์ฟเวอร์เอ็กซ์และเปิดใช้งานControl+AltBackspace +
บันทึก:
การกดCtrl- Alt- Backspaceจะรีสตาร์ทเซิร์ฟเวอร์ X ของคุณ