แค่สงสัยเกี่ยวกับความแตกต่างระหว่างสัญญาณ SIGSTOP และ SIGTSTP
แค่สงสัยเกี่ยวกับความแตกต่างระหว่างสัญญาณ SIGSTOP และ SIGTSTP
คำตอบ:
SIGCONTสัญญาณทั้งสองได้รับการออกแบบมาเพื่อระงับกระบวนการที่จะได้รับกลับมาในที่สุดด้วย ความแตกต่างที่สำคัญระหว่างพวกเขาคือ:
SIGSTOPเป็นสัญญาณที่ส่งโปรแกรม (เช่นkill -STOP pid) ในขณะที่SIGTSTP(สำหรับsig NAL - T erminal หยุด ) นอกจากนี้ยังอาจถูกส่งผ่านttyคนขับโดยผู้ใช้พิมพ์บนแป้นพิมพ์ปกติ-ControlZ
SIGSTOPไม่สามารถละเลยได้ SIGTSTPอาจจะ.
Control-Zไม่กระตุ้นSIGTSTPหรือคุณคิดว่าไม่ควร?
terminal stopหมายถึง TSTP
/usr/include/x86_64-linux-gnu/bits/signum.h
#define SIGSTOP 19 /* Stop, unblockable (POSIX). */
#define SIGTSTP 20 /* Keyboard stop (POSIX). */
/usr/include/sys/iso/signal_iso.h
/usr/include/sys/signal.h
SIGSTOP ไม่สามารถละเลยโดยกระบวนการที่กำหนดเป้าหมายได้
ตัวอย่างที่ดีคือเครื่องเล่นวิดีโอmpvสามารถเพิกเฉยSIGTSTPได้ แต่ทำไม่ได้SIGSTOPแต่ไม่
คุณสามารถทดสอบด้วยวิดีโอที่กำลังทำงาน:
kill -SIGTSTP $(pidof mpv)
และ
kill -SIGSTOP $(pidof mpv)
แน่นอนkill -SIGCONT $(pidof mpv)การเล่นประวัติการทำงาน