แหล่งอ้างอิงที่อ่านง่ายสำหรับสัญญาณโปรเซส POSIX/Linux มาตรฐานทุกตัว — SIGHUP ถึง SIGSYS — แสดงหมายเลขสัญญาณ การกระทำเริ่มต้น (Term, Core, Ign, Stop, Cont) ว่าดักจับได้หรือไม่ อะไรทำให้เกิด และรหัส exit ของเชลล์ที่ตรงกัน (128+N) ในเบราว์เซอร์ ฟรี

ทุกสัญญาณโปรเซส POSIX/Linux มาตรฐาน พร้อมคำอธิบาย ทุกอย่างทำงานในเบราว์เซอร์ของคุณจากแหล่งอ้างอิงในตัว — ไม่มีการส่งข้อมูลไปยังเซิร์ฟเวอร์

สัญญาณ หมายเลข การกระทำเริ่มต้น ดักจับได้ คำอธิบาย รหัส exit
ไม่มีสัญญาณที่ตรงกับการค้นหาของคุณ
ลองชื่อหรือหมายเลขอื่น — เช่น SIGTERM, 11 หรือ segmentation
นอกจากนี้ Linux ยังมีสัญญาณเรียลไทม์ SIGRTMIN ถึง SIGRTMAX (โดยทั่วไปคือสัญญาณ 34–64) ซึ่งไม่มีความหมายที่กำหนดไว้ล่วงหน้าและถูกส่งตามลำดับที่รับประกัน — แอปพลิเคชันกำหนดวัตถุประสงค์ของตัวเองให้กับสัญญาณเหล่านี้
หมายเลขสัญญาณที่แสดงเป็นค่าเริ่มต้นสำหรับ x86/ARM ABI สัญญาณบางตัวมีหมายเลขต่างกันในสถาปัตยกรรมอื่น (เช่น Alpha, MIPS และ SPARC) ดังนั้นในสคริปต์ควรใช้ชื่อสัญลักษณ์ (SIGKILL) แทนหมายเลขดิบ (9) เสมอ

เกี่ยวกับ สัญญาณ Linux

ข้อมูลอ้างอิง Linux Signals แสดงรายการ signal มาตรฐานของ POSIX/Linux ทุกตัวในโปรเซส ตั้งแต่ SIGHUP ไปจนถึง SIGSYS ในตารางเดียวที่ไล่ดูง่าย แต่ละแถวแสดงหมายเลขของ signal, การกระทำเริ่มต้น ได้แก่ Terminate, Core dump, Ignore, Stop หรือ Continue, ว่าโปรเซสจับสัญญาณนี้ได้หรือไม่, สิ่งที่มักกระตุ้นให้เกิดขึ้น และ exit code ของเชลล์ (128 + N) ที่คุณเห็นเมื่อโปรเซสตายจากมัน

คอลัมน์ exit code นั้นปิดวงจรที่นักพัฒนาเจอทุกวัน คอนเทนเนอร์ที่ออกด้วยรหัส 137 ถูกฆ่าโดย SIGKILL (9), ความล่มที่ 139 คือ segmentation fault จาก SIGSEGV (11) และการปิดระบบอย่างสะอาดที่ 143 มาจาก SIGTERM (15) การค้นหาทำงานได้ตามชื่อ, หมายเลข, exit code หรือความหมาย คุณจึงเริ่มจากเบาะแสไหนก็ได้ที่คุณมี

มีเชิงอรรถสองส่วนที่ครอบคลุมสิ่งที่ข้อมูลอ้างอิงมักข้ามไป ได้แก่ signal แบบเรียลไทม์ SIGRTMIN ถึง SIGRTMAX ซึ่งไม่มีความหมายกำหนดไว้ล่วงหน้าและถูกส่งตามลำดับที่รับประกัน และข้อควรระวังเรื่องสถาปัตยกรรม หมายเลข signal บางตัวต่างกันบน Alpha, MIPS และ SPARC ซึ่งเป็นเหตุผลที่สคริปต์ควรใช้ชื่อสัญลักษณ์แทน ทุกอย่างทำงานในเบราว์เซอร์ของคุณ

วิธีใช้ สัญญาณ Linux

  1. ค้นหา signal ตามชื่อ (SIGKILL), หมายเลข (9), exit code ของเชลล์ (137) หรือคำสำคัญอย่าง "segmentation"
  2. อ่านแถว ได้แก่ หมายเลข, การกระทำเริ่มต้น, ว่าจับสัญญาณได้หรือไม่ และสิ่งที่กระตุ้นให้เกิดขึ้น
  3. ใช้คอลัมน์ exit code เพื่อแปลง shell status 128+N กลับไปเป็น signal ที่ฆ่าโปรเซสนั้น
  4. คัดลอกชื่อ signal หรือ exit code ด้วยปุ่มคัดลอกของแถวนั้น
  5. ตรวจสอบหมายเหตุเกี่ยวกับ signal แบบเรียลไทม์และการนับเลขตามสถาปัตยกรรม หากคุณกำลังเขียนสคริปต์ที่ต้องพกพาได้

คำถามที่พบบ่อย

SIGTERM (15) ขอให้โปรเซสออกอย่างสุภาพ มันจับสัญญาณได้ ดังนั้นโปรเซสอาจเก็บกวาดก่อนได้ ส่วน SIGKILL (9) ยุติทันทีในระดับเคอร์เนลและจับ บล็อก หรือเพิกเฉยไม่ได้ ควรลอง SIGTERM ก่อนเสมอก่อนจะใช้ kill -9

SIGKILL และ SIGSTOP เคอร์เนลบังคับทั้งสองตัวโดยตรง ดังนั้นไม่มี handler ใดสกัดกั้นได้ SIGKILL จะยุติโปรเซสเสมอ และ SIGSTOP จะหยุดโปรเซสเสมอ

เมื่อโปรเซสถูกฆ่าด้วย signal เชลล์จะรายงาน 128 บวกกับหมายเลข signal ดังนั้น 139 คือ 128 + 11 นั่นคือโปรเซสตายจาก SIGSEGV ซึ่งเป็น segmentation fault ตารางนี้แสดง exit code นี้ไว้ข้าง signal ร้ายแรงทุกตัว

SIGRTMIN ถึง SIGRTMAX ซึ่งโดยทั่วไปคือหมายเลข 34 ถึง 64 บน Linux ต่างจาก signal มาตรฐาน สัญญาณเหล่านี้ไม่มีความหมายกำหนดไว้ล่วงหน้าและถูกจัดคิวและส่งตามลำดับที่รับประกัน แอปพลิเคชันจึงกำหนดวัตถุประสงค์ของตัวเองให้กับมันได้

เพราะหมายเลข signal บางตัวต่างกันระหว่างสถาปัตยกรรม CPU อย่าง Alpha, MIPS และ SPARC ชื่อสัญลักษณ์ เช่น kill -TERM แทนที่จะเป็น kill -15 มีความหมายเหมือนกันทุกที่ จึงเป็นตัวเลือกที่พกพาได้

ใช่ ฟรีทั้งหมด ตารางทั้งหมดฝังอยู่ในหน้าเว็บ และการค้นหาและการคัดลอกทั้งหมดทำงานในเบราว์เซอร์ของคุณ

แชร์สิ่งนี้
ต้องการความช่วยเหลือ?
พบปัญหากับเครื่องมือนี้หรือไม่? แจ้งทีมงานของเรา
รายงานปัญหา

เพิ่มเครื่องมือฟรีนี้ลงในเว็บไซต์ของคุณเอง — คัดลอกและวางโค้ดด้านล่าง