มีวิธีใดบ้างที่จะทราบว่าโปรแกรมจะทำอะไรเมื่อได้รับสัญญาณการฆ่า HUP
โดยไม่ต้องรันคำสั่ง ofc: D
ตัวอย่างเช่น
killall -HUP pppd
จะรีสตาร์ท pppd
killall -HUP firefox
เพียง แต่จะฆ่า firefox
มีวิธีใดบ้างที่จะทราบว่าโปรแกรมจะทำอะไรเมื่อได้รับสัญญาณการฆ่า HUP
โดยไม่ต้องรันคำสั่ง ofc: D
ตัวอย่างเช่น
killall -HUP pppd
จะรีสตาร์ท pppd
killall -HUP firefox
เพียง แต่จะฆ่า firefox
คำตอบ:
อ่านเอกสารของมัน นั่นเป็นวิธีเดียว ตามที่คี ธ เขียนไปแล้วความหมายดั้งเดิมของSIGHUPคือผู้ใช้ไม่สามารถเข้าถึงโปรแกรมและโปรแกรมแบบอินเทอร์แอคทีฟควรตาย Daemons - โปรแกรมที่ไม่โต้ตอบโดยตรงกับผู้ใช้ - ไม่จำเป็นต้องมีพฤติกรรมนี้และมักจะโหลดไฟล์การกำหนดค่าของพวกเขาเมื่อพวกเขาได้รับ SIGHUP แต่นี่เป็นเพียงการประชุม
หากคุณมีแหล่งที่มาคุณสามารถอ่านได้เช่นกัน หรือถ้าคุณมีไบนารีคุณสามารถลองแยกส่วนค้นหาsigaction
สายที่ตั้งค่าตัวจัดการสัญญาณSIGHUP
และลองค้นหาว่าตัวจัดการสัญญาณเหล่านั้นกำลังทำอะไรอยู่ การจัดเรียงจะไม่ง่ายกว่าในการส่ง SIGHUP ไปยังโปรแกรมนั้นในตอนแรก
เมื่อถึงจุดใดเวลาหนึ่งกระบวนการที่กำหนดจะอยู่ในสถานะใดสถานะหนึ่งจากสามสถานะด้วยความเคารพต่อสัญญาณใด ๆ โดยไม่สนใจกระบวนการดำเนินการเริ่มต้นหรือเรียกใช้ตัวจัดการแบบกำหนดเอง หลายคนอนุญาตให้คุณเห็นสัญญาณหน้ากากของกระบวนการด้วยps
เช่นps s
บน Linux ซึ่งสามารถบอกคุณได้ว่ากระบวนการเพิกเฉยสัญญาณหรือจะตายทันทีบน SIGHUP แต่ถ้ากระบวนการตั้งค่าตัวจัดการคุณไม่สามารถบอกได้ว่าตัวจัดการทำอะไร
การกระทำเริ่มต้นคือการยุติกระบวนการใน SIGHUP ดูman 7 signal
รายละเอียดเพิ่มเติมได้ที่ แต่โปรแกรมสามารถดักจับและทำสิ่งที่พวกเขาต้องการ เนื่องจากกระบวนการ daemon ไม่ควรออกจากกระบวนการพวกเขามักใช้ SIGHUP เพื่อวัตถุประสงค์อื่นเช่นเริ่มต้นใหม่เอง (เหมือนที่ pppd ทำ) Firefox จะดำเนินการตามค่าเริ่มต้น