แค่สงสัยเกี่ยวกับความแตกต่างระหว่างสัญญาณ 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)
การเล่นประวัติการทำงาน