Sự khác biệt giữa SIGSTOP và SIGTSTP là gì?


Câu trả lời:


153

Cả hai tín hiệu đều được thiết kế để tạm dừng một quá trình mà cuối cùng sẽ được tiếp tục lại SIGCONT. Sự khác biệt chính giữa chúng là:

  • SIGSTOPlà một tín hiệu được gửi theo chương trình (ví dụ: kill -STOP pid) trong khi SIGTSTP(đối với sig NAL - t erminal dừng ) cũng có thể được gửi thông qua ttytrình điều khiển bằng một cách gõ người dùng trên một bàn phím, thường Control- Z.

  • SIGSTOPkhông thể bỏ qua. SIGTSTPcó thể là.


10
Factoid: Nếu bạn là một lập trình viên linux, SIGTSTP là những gì bạn nhận được khi sử dụng Ctrl-Z để ngắt một tiến trình đang chạy trong một trình bao mà không giết nó. Điều này thường khiến trình bao đưa nó vào danh sách công việc bị đình chỉ.
simpleuser

@Archer Tôi không chắc hiểu nhận xét của bạn. Bạn có nghĩa là bạn tin rằng Control-Znó không kích hoạt SIGTSTPhay bạn nghĩ nó không nên?
jlliagre

@jlliagre Tôi đã khảo sát kỹ hơn, và hóa ra là bạn nói đúng. Tôi đã xóa bình luận trước đó.
Archer

@Archer Ok, tôi đoán là bạn đã nhầm lẫn với thuật ngữ trang thủ công. terminal stopnghĩa là TSTP.
jlliagre

@jlliagre Tôi muốn, nhưng hệ thống sẽ không cho phép nó, nó nói tôi chỉ có thể hủy bỏ downvote nếu câu trả lời là thay đổi nội dung ...
Archer

39

/usr/include/x86_64-linux-gnu/bits/signum.h

#define SIGSTOP     19  /* Stop, unblockable (POSIX).  */
#define SIGTSTP     20  /* Keyboard stop (POSIX).  */

6
Trên Solaris 10, các tín hiệu được xác định trong tệp tiêu đề/usr/include/sys/iso/signal_iso.h
Kent Pawar

2
Trong FreeBSD 11 nó ở/usr/include/sys/signal.h
Greg Schmit

1

Quá trình nhắm mục tiêu không thể bỏ qua SIGSTOP.

Một ví dụ điển hình là trình phát video mpv, nó có thể bỏ qua SIGTSTPnhưng không SIGSTOP.

Bạn có thể kiểm tra với một video đang chạy:

kill -SIGTSTP $(pidof mpv)kill -SIGSTOP $(pidof mpv)

Tất nhiên kill -SIGCONT $(pidof mpv)để tiếp tục chơi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.