ฉันกำลังพัฒนาแอปพลิเคชันและฉันต้องการพิมพ์สถิติรันไทม์บางส่วนไปยังคอนโซลตามต้องการ kill
และสัญญาณมาถึงใจของฉันทันที
การอ่านสัญญาณ Unixบน Wiki SIGINFO
ดูเหมือนจะเป็นไปได้เพราะ:
- มันมีไว้สำหรับวัตถุประสงค์เหล่านี้
- ไม่ยุติกระบวนการหากไม่มีการใช้งานตัวจัดการสัญญาณ (ตรงกันข้ามกับ
SIGUSRx
- ดูที่นี่ )
อย่างไรก็ตามโดยการตรวจสอบผลลัพธ์ของkill -l
ดูเหมือนว่าเซิร์ฟเวอร์ของฉันไม่ได้ใช้สัญญาณนี้
คำถามของฉันคือ:
- ทำไม
SIGINFO
ระบบของฉันถึงหายไป มันหายไปกับระบบ GNU Linux ทั้งหมดหรือไม่? - มีวิธีง่าย ๆ (เช่นไม่มีเคอร์เนล / glibc recompilation) เพื่อเปิดใช้งานสัญญาณนี้หรือไม่? ถ้าไม่มีสิ่งใดจะเป็นวิธีที่ยาก?
- ฉันสามารถใช้สัญญาณทางเลือกใดเพื่อจุดประสงค์ของฉันที่จะไม่ทำให้เกิดผลข้างเคียงใด ๆหากไม่ได้รับการจัดการโดยกระบวนการเป้าหมาย (ฉันไม่คิดเลยเพราะฉันไม่สามารถหาสัญญาณอื่นที่เหมาะสมในคู่มือของglibc )
Linux metainfo:
Linux whatever 3.18.2-2-ARCH #1 SMP PREEMPT Fri Jan 9 07:37:51 CET 2015 x86_64 GNU/Linux
อัปเดต:ฉันยังคงค้นหาข้อมูลเพิ่มเติมว่าทำไมสัญญาณนี้จึงถูกแยกแบบมีเงื่อนไขจากระบบอื่นที่ไม่ใช่ BSD (ดูความคิดเห็นด้านล่าง) สัญญาณดูเหมือนจะค่อนข้างมีประโยชน์สำหรับวัตถุประสงค์หลายอย่างดังนั้นมันยากสำหรับฉันที่จะเชื่อว่ามันเป็นเพียงเรื่องของความตั้งใจ - ดังนั้นสิ่งที่ showstopper จริงของสัญญาณนี้จะมีอยู่บน Linux?
dd
ใน Mac ของฉัน ^T
ระหว่างdd
การดำเนินการไม่ได้ทำอะไรบนเครื่อง Linux - ฉันจะอัปเดตคำถามตาม
^T
ปรากฏในการส่งออกของstty -a
?