Câu trả lời:
Ctrl-D hoặc exit
giống nhau.
Nếu bạn sử dụng "X", trình quản lý cửa sổ sẽ gửi tín hiệu kết thúc đến trình bao. Mà cuối cùng có kết quả. Nếu shell không phản ứng, người dùng thường nhận được cảnh báo và sau đó có thể buộc shell kết thúc (bằng kill -9 $PID
).
Có một sự khác biệt nhỏ giữa "X" - và phương thức thoát nếu bạn đang sử dụng zsh
như shell: Nếu bạn có một quá trình nền đang chạy, exit
/ ctrl-D chỉ tạo ra một thông báo cảnh báo "bạn có công việc đang chạy" lần đầu tiên lần thứ hai vỏ được đóng lại. Với nút "X", trình bao chấm dứt ngay lập tức mà không có bất kỳ cảnh báo nào.
Đóng trình giả lập thiết bị đầu cuối không giống như nhấn CTRL + D
(trừ khi tùy chọn huponexit
được đặt).
Khi bạn đóng thiết bị đầu cuối (nhấp vào "X"), trình giả lập thiết bị đầu cuối sẽ gửi SIGHUP tới trình bao. Khi bash nhận được SIGHUP, nó cũng sẽ gửi SIGHUP cho tất cả các công việc của bạn.
Khi bạn thoát khỏi thiết bị đầu cuối bằng CTRL+D
hoặc logout
hoặc exit
, trình bao thoát ra mà không gửi SIGHUP cho tất cả các công việc. Đây là hành vi mặc định, nhưng có thể được thay đổi bằng cách thiết lập bash shopt
thiết lập huponexit
.
Vì vậy, cuối cùng nếu mục tiêu của bạn là đảm bảo không có gì chạy trong nền, thì sau đó hãy nhấp vào "X".
.
Thông tin được cung cấp bởi jofel trong bình luận của anh ấy là không chính xác (xin lỗi jofel). Trình giả lập thiết bị đầu cuối không có manh mối nào các công việc đang chạy dưới vỏ, do đó nó không thể chấm dứt chúng.
LƯU Ý :
Hành vi này hoàn toàn phụ thuộc vào vỏ. Hoàn toàn có thể là các shell khác nhau có hành vi mặc định khác nhau.
Ctrl+d
quy trình được kế thừa bởi PPID 1 = systemd
&
sẽ vẫn chạy. Nếu bạn "X", thì họ sẽ bị chấm dứt.