Câu hỏi này đã cũ, và tôi vẫn chưa rõ tại sao.
Câu hỏi gốc năm 2014:
Trong tab Gnome Terminal, tôi đã chạy
$ nohup chromium-browser &
Nhưng khi tôi đóng tab thiết bị đầu cuối, chromium-browser
cũng thoát. Không phải nohup
là để ngăn chặn điều đó? Gilles nói:
nohup và disown cả hai có thể được nói để đàn áp SIGHUP, nhưng theo những cách khác nhau. nohup làm cho chương trình bỏ qua tín hiệu ban đầu (chương trình có thể thay đổi điều này). nohup cũng cố gắng sắp xếp để chương trình không có thiết bị đầu cuối điều khiển, để nó sẽ không được gửi SIGHUP bởi kernel khi thiết bị đầu cuối bị đóng. disown hoàn toàn là nội bộ cho vỏ; nó khiến shell không gửi SIGHUP khi nó kết thúc.
Vì vậy, không nohup làm cho trình duyệt crom bỏ qua SIGHUP?
Tôi cũng thấy điều này trên các tệp thực thi khác, chẳng hạn như và Emacs (chế độ GUI). Nhưng không phải trên xeyes.
Điều này đang xảy ra trên Ubuntu 12.04, 32-bit khi câu hỏi được đăng.
Cập nhật năm 2015,
Bây giờ tôi đang chạy Ubuntu 14.04, google-chrome
thay vì chromium-browser
cài đặt. Điều tương tự đã xảy ra với trình duyệt crom trước đây cũng xảy ra với google-chrome. nohup google-chrome 2>/dev/null &
không lưu nó khỏi bị đóng khi tab terminal bị đóng. /usr/bin/google-chrome
là một liên kết đến một tập lệnh bash /opt/google/chrome/google-chrome
. Tại sao nohup
áp dụng cho tập lệnh bash không hoạt động? Làm thế nào chúng ta có thể làm cho nó hoạt động trên các tập lệnh bash? Còn các kịch bản Python thì sao?
xeyes
.