SIGQUIT เหมือนกับ SIGTERM หรือไม่


14

ฉันกำลังเรียนรู้ CentOS / RHEL และกำลังทำบางสิ่งเกี่ยวกับการจัดการกระบวนการ

หนังสือ RHCSA ที่ฉันกำลังอ่านกำลังอธิบายว่ากำลังkill 1234ส่ง SIGQUIT ฉันคิดเสมอว่าคำสั่ง kill โดยไม่เพิ่มสวิตช์สำหรับชนิดสัญญาณควรเป็นค่าเริ่มต้นkill -15

SIGTERM เป็นkill -15และ SIGKILL kill -9ใช่ไหม

CentOS / RHEL ใช้วิธีที่แตกต่างกันเล็กน้อยkill -15หรือว่าฉันเพิ่งเข้าใจผิด?

แก้ไข: kill -lให้ SIGQUIT เป็นkill -3และดูเหมือนว่าจะเกี่ยวข้องกับการใช้แป้นพิมพ์เพื่อยุติกระบวนการ man 7 signalและระบุด้วยว่า SIGQUIT นั้นเป็นkill -3ดังนั้นฉันสามารถสันนิษฐานได้ว่าหนังสือของฉันไม่ถูกต้องในการระบุว่า SIGQUIT นั้นเป็นkill -15ค่าเริ่มต้น

คำตอบ:


13

ไม่พวกเขาไม่เหมือนกัน การกระทำเริ่มต้นสำหรับทั้งสองคือการยุติกระบวนการ แต่SIGQUITยังทิ้งหลัก ดูเช่นหน้าคนลินุกซ์ signal(7)killโดยค่าเริ่มต้นส่ง SIGTERM ดังนั้นฉันสามารถจินตนาการได้ว่าการกล่าวถึง SIGQUIT ที่เป็นค่าเริ่มต้นนั้นเป็นเพียงความผิดพลาด ที่เริ่มต้นคือใน POSIXและเพื่อให้มีตัวเลขสำหรับ SIGTERM, SIGKILL และ SIGQUIT


1
ใช่. ฉันคิดว่าหนังสือเล่มนี้เข้าใจผิดเพราะมันแสดง SIGQUIT เป็น -15 สัญญาณ -15 เป็นวิธีที่กำหนดขึ้นมาเพื่อยุติกระบวนการในโลก Linux ไม่ต้องสงสัยเลยว่ามันเป็นความผิดพลาด ฉันจะทำเครื่องหมายคำตอบของคุณถูกต้อง ขอบคุณสำหรับการขยายสิ่งที่ SIGQUIT ทำ
bitofagoob

1

มีสองคำสั่ง kill หนึ่งคำสั่งใน procps และอีกคำสั่งหนึ่งในเชลล์ ทั้งสองใช้ SIGTERM เป็นค่าเริ่มต้น สำหรับ procps kill วิธีใช้คำสั่งหน้าคู่มือและแหล่งที่มาทำลาย (skill.c บรรทัด 724 ในสาขาหลักล่าสุด) ทั้งหมดพูด SIGTERM ซึ่งดีที่รู้ว่ามันสอดคล้องกัน

สิ่งหนึ่งที่ต้องจดจำเกี่ยวกับสัญญาณคือเมื่อคุณเริ่มต้นผ่าน "กลุ่มปกติ" และใช้ระบบแตกต่างกันเล็กน้อยกับระบบ x86 Linux คุณอาจพบสัญญาณไม่ได้อยู่ที่นั่นหรือพวกเขามีตัวเลขที่แตกต่างกัน procps (และอาจเป็นจำนวนมากของโปรแกรมอื่น ๆ ) ทำให้ตัวเลขในเวลาคอมไพล์ (ส่วนใหญ่สิ่งที่ไฟล์รวมมีให้มองหา signum.h)

ไม่ใช่สิ่งที่ต้องกังวลเกี่ยวกับ SIGTERM อย่างที่ @ilkkachu พูดไว้ใน POSIX


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