เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | Contents | ถัดไป>

การส่งสัญญาณไปยังการประมวลผลด้วยการฆ่า

การขอ ฆ่า คำสั่งใช้สำหรับส่งสัญญาณไปยังโปรแกรม ไวยากรณ์ที่พบบ่อยที่สุดมีลักษณะดังนี้:



ฆ่า [-สัญญาณ] พีไอดี...

ฆ่า [-สัญญาณ] พีไอดี...


หากไม่มีการระบุสัญญาณบนบรรทัดรับคำสั่ง แสดงว่า ระยะ (ยุติ) สัญญาณจะถูกส่งโดยค่าเริ่มต้น NS ฆ่า คำสั่งมักใช้เพื่อส่งสัญญาณต่อไปนี้:


ตาราง 10-4: สัญญาณทั่วไป


จำนวน

ชื่อ

ความหมาย

1

หุบ

วางสาย. นี่คือร่องรอยของวันเก่า ๆ ที่ดีเมื่อต่อขั้วกับรีโมท


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

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

2

INT

ขัดจังหวะ. ทำหน้าที่เหมือนกับ the Ctrl-c คีย์ที่ส่งจากเทอร์มินัล มันมักจะยุติโปรแกรม

9

ฆ่า

ฆ่า. สัญญาณนี้เป็นสัญญาณพิเศษ ในขณะที่โปรแกรมอาจเลือกที่จะจัดการกับสัญญาณที่ส่งถึงพวกเขาในรูปแบบต่างๆ รวมถึงการละเว้นทั้งหมดเข้าด้วยกัน ฆ่า สัญญาณจะไม่ถูกส่งจริงไปยังโปรแกรมเป้าหมาย แต่เคอร์เนลจะยุติกระบวนการทันที เมื่อกระบวนการสิ้นสุดลงในลักษณะนี้ จะไม่มีโอกาส "ล้าง" หลังจากตัวเองหรือบันทึกงาน ด้วยเหตุนี้ ฆ่า ควรใช้สัญญาณเป็นทางเลือกสุดท้ายเมื่อสัญญาณการสิ้นสุดอื่นๆ ล้มเหลวเท่านั้น

15

ระยะ

ยุติ. นี่คือสัญญาณเริ่มต้นที่ส่งโดย ฆ่า สั่งการ. หากโปรแกรมยังคง "มีชีวิตอยู่" มากพอที่จะรับสัญญาณ โปรแกรมจะยุติลง

18

ต่อ

ดำเนินการต่อ. การดำเนินการนี้จะคืนค่ากระบวนการหลังจาก a STOP

ส่งสัญญาณ

19

STOP

หยุด. สัญญาณนี้ทำให้กระบวนการหยุดชั่วคราวโดยไม่ยุติ ชอบ ฆ่า สัญญาณจะไม่ถูกส่งไปยังกระบวนการเป้าหมายและไม่สามารถละเลยได้


มาลองกัน ฆ่า คำสั่ง:


[me@linuxbox ~]$ xlogo &

[เอกสารเก่า] ฮิต

[me@linuxbox ~]$ ฆ่า - 1 13546

[1]+ วางสาย xlogo

[me@linuxbox ~]$ xlogo &

[เอกสารเก่า] ฮิต

[me@linuxbox ~]$ ฆ่า - 1 13546

[1]+ วางสาย xlogo


ในตัวอย่างนี้ เราเริ่ม xlogo โปรแกรมในพื้นหลังแล้วส่ง หุบ ส่งสัญญาณด้วย ฆ่าส่วน xlogo โปรแกรมสิ้นสุดลงและเชลล์ระบุว่ากระบวนการแบ็คกราวด์ได้รับสัญญาณวางสาย เราอาจต้องกดปุ่ม Enter สองครั้งก่อนที่ข้อความจะปรากฏขึ้น โปรดทราบว่าสัญญาณอาจระบุด้วยตัวเลขหรือตามชื่อ รวมทั้งชื่อที่นำหน้าด้วยตัวอักษร “SIG”:



[me@linuxbox ~]$ xlogo &

[เอกสารเก่า] ฮิต

[me@linuxbox ~]$ ฆ่า -INT 13601 [1]+ ขัดจังหวะ xlogo [me@linuxbox ~]$ xlogo &

[เอกสารเก่า] ฮิต

[me@linuxbox ~]$ ฆ่า -SIGINT 13608

[1]+ ขัดจังหวะ xlogo

[me@linuxbox ~]$ xlogo &

[เอกสารเก่า] ฮิต

[me@linuxbox ~]$ ฆ่า -INT 13601 [1]+ ขัดจังหวะ xlogo [me@linuxbox ~]$ xlogo &

[เอกสารเก่า] ฮิต

[me@linuxbox ~]$ ฆ่า -SIGINT 13608

[1]+ ขัดจังหวะ xlogo


ทำซ้ำตัวอย่างด้านบนและลองใช้สัญญาณอื่นๆ โปรดจำไว้ว่า เรายังใช้ข้อกำหนดเฉพาะของงานแทน PID ได้

กระบวนการเช่นไฟล์มีเจ้าของและคุณต้องเป็นเจ้าของกระบวนการ (หรือผู้ยิ่งใหญ่) เพื่อส่งสัญญาณด้วย ฆ่า.

นอกเหนือจากรายการสัญญาณด้านบนซึ่งส่วนใหญ่มักใช้กับ ฆ่ามีสัญญาณอื่นๆ ที่ระบบใช้บ่อย นี่คือรายการสัญญาณทั่วไปอื่นๆ:


ตาราง 10-5: สัญญาณทั่วไปอื่นๆ


จำนวน

ชื่อ

ความหมาย

3

เลิก

เลิก.

11

เอสอีจีวี

การละเมิดการแบ่งส่วน สัญญาณนี้จะถูกส่งไปหากโปรแกรมใช้หน่วยความจำอย่างผิดกฎหมาย กล่าวคือ มันพยายามเขียนในที่ที่ไม่ได้รับอนุญาต

20

สสวท

เทอร์มินัลหยุด นี่คือสัญญาณที่เครื่องปลายทางส่งเมื่อ Ctrl-z กดปุ่ม ไม่เหมือนกับ STOP สัญญาณ สสวท รับสัญญาณโดย


ภาพ

โปรแกรมแต่โปรแกรมอาจเลือกเพิกเฉย


ภาพ

28 WINCH เปลี่ยนหน้าต่าง นี่คือสัญญาณที่ส่งโดย

ระบบเมื่อหน้าต่างเปลี่ยนขนาด บางโปรแกรม เช่น ด้านบน และ น้อยลง จะตอบสนองต่อสัญญาณนี้โดยวาดตัวเองใหม่เพื่อให้พอดีกับขนาดหน้าต่างใหม่


ภาพ


สำหรับผู้อยากรู้อยากเห็น สามารถดูรายการสัญญาณทั้งหมดได้ด้วยคำสั่งต่อไปนี้:



[me@linuxbox ~]$ ฆ่า -l

[me@linuxbox ~]$ ฆ่า -l


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: