Tín hiệu nào mới bắt đầu / initctl sử dụng để khởi động lại một công việc?


10

Tín hiệu nào sẽ upstart/ initctlsử dụng để khởi động lại một công việc? Hơn nữa, có cách nào để xác định rằng SIGHUP nên được sử dụng không?

Cách khác, có cách nào để xác định reloadlệnh tùy chỉnh sẽ gửi SIGHUP không? Hay tôi cần phải đi ra ngoài upstartđể làm điều đó?


Tôi tin rằng đó là SIGQUIT; Đáp ứng cho SIGHUP là ứng dụng cụ thể trong hầu hết các trường hợp.
Chris S

Điều đó sẽ có ý nghĩa. Xem chỉnh sửa làm rõ của tôi.
David Eyk

Câu trả lời:


23

Tín hiệu nào sẽ bắt đầu / initctl sử dụng để khởi động lại một công việc?

SIGTERM

$ strace -fp `pgrep cron` 2> ~/strace &
$ initctl restart cron
$ cat ~/strace
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x804a280, [CHLD], SA_RESTART}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {57, 153662204})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGTERM (Terminated) @ 0 (0) ---
Process 2275 detached

Hơn nữa, có cách nào để xác định rằng SIGHUP nên được sử dụng không?

Sử dụng: initctl reload

Cách khác, có cách nào để xác định lệnh tải lại tùy chỉnh sẽ gửi SIGHUP không?

Sử dụng: initctl reload

Hay tôi cần phải đi ra ngoài để làm điều đó?

Sử dụng initctl reloadhoặc kill/killall -HUP


Rất kỹ lưỡng. Cảm ơn bạn. Đoán tôi có thể đã tìm thấy một số điều đó trên trang người đàn ông!
David Eyk

Nó được nâng cấp lên SIGKILL nếu dịch vụ không dừng kịp thời. "Dừng một công việc liên quan đến việc gửi SIGTERM tới nó. ... Tuy nhiên, nếu dịch vụ mất nhiều thời gian hơn giây (mặc định là 5 giây) thì nó sẽ được gửi SIGKILL" upstart.ub Ubuntu.com/cookbook/#pre-stop
scipilot
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.