SIGQUIT có giống như SIGTERM không?


13

Tôi đang học CentOS / RHEL và hiện đang làm một số thứ về quản lý quy trình.

Cuốn sách RHCSA tôi đang đọc mô tả đang chạy kill 1234như đang gửi SIGQUIT. Tôi luôn nghĩ lệnh kill mà không cần thêm công tắc cho loại tín hiệu nên mặc định làkill -15

SIGTERM là kill -15và SIGKILL là kill -9, phải không?

Có phải CentOS / RHEL sử dụng một phương pháp hơi khác kill -15hoặc tôi đã nhầm lẫn?

EDIT: kill -lcung cấp cho SIGQUIT kill -3và dường như nó được liên kết với việc sử dụng bàn phím để chấm dứt một quá trình. man 7 signalcũng nói rằng SIGQUIT là kill -3, vì vậy tôi chỉ có thể cho rằng cuốn sách của mình sai khi nói rằng SIGQUIT là kill -15mặc định.

Câu trả lời:


13

Không, chúng không giống nhau. Hành động mặc định cho cả hai là chấm dứt quá trình, nhưng SIGQUITcũng bỏ lõi. Xem ví dụ trang người đàn ông Linuxsignal(7) . killtheo mặc định gửi SIGTERM, vì vậy tôi chỉ có thể tưởng tượng rằng việc đề cập đến SIGQUIT là mặc định thực sự chỉ là một sai lầm. Mặc định đó là trong POSIX và các số cho SIGTERM, SIGKILL và SIGQUIT cũng vậy.


1
Vâng. Tôi nghĩ rằng cuốn sách bị nhầm lẫn vì nó cũng liệt kê SIGQUIT là -15. Tín hiệu -15 là một cách được thiết lập để kết thúc một quá trình trong thế giới Linux, không còn nghi ngờ gì nữa, đó là một sai lầm. Tôi sẽ đánh dấu câu trả lời của bạn là chính xác. Cảm ơn bạn đã mở rộng về những gì SIGQUIT làm.
bitofagoob

1

Có hai lệnh kill, một trong Procps và một trong shell. Cả hai đều sử dụng SIGTERM làm mặc định. Đối với Procps kill, lệnh trợ giúp, trang thủ công và nguồn giết (skill.c dòng 724 trong nhánh chính mới nhất) đều nói SIGTERM, thật tuyệt khi biết nó phù hợp.

Một điều cần nhớ về tín hiệu là khi bạn bắt đầu đi qua "bó thông thường" và sử dụng các hệ thống khác một chút so với hệ thống Linux x86, bạn có thể thấy các tín hiệu không có ở đó hoặc chúng có các số khác nhau. Procps (và có lẽ rất nhiều chương trình khác) đưa ra các con số trong thời gian biên dịch (về cơ bản là bất cứ tập tin nào có, hãy tìm kiếm Signum.h).

Không có gì phải lo lắng cho SIGTERM, như @ilkkachu nói, nó có trong POSIX.


manpage cho skill nói rằng skill và snice đã lỗi thời. Tôi tự hỏi tại sao họ không bị xóa khỏi không gian người dùng? Thông tin thú vị, dù sao. Cảm ơn.
bitofagoob
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.