Ctrl-D или exit
то же самое.
Если вы используете «X», оконный менеджер отправляет сигнал завершения в оболочку. Который имеет в итоге тот же результат. Если оболочка не реагирует, пользователь обычно получает предупреждение и затем может принудительно завершить работу оболочки (равно kill -9 $PID
).
Существует одно небольшое различие между «X» и методом выхода, если вы используете в zsh
качестве оболочки: если у вас запущен фоновый процесс, exit
/ ctrl-D в первый раз выдает только предупреждающее сообщение «у вас запущены задания», второй раз оболочка закрыта. При нажатии кнопки «X» оболочка немедленно завершается без каких-либо предупреждений.
&
, останутся запущенными Если вы "X", то они будут прекращены.Закрытие эмулятора терминала - это не то же самое, что нажатие
CTRL + D
(если опцияhuponexit
не установлена).Когда вы закрываете терминал (нажимая «X»), эмулятор терминала отправляет SIGHUP в оболочку. Когда bash получает SIGHUP, он также отправляет SIGHUP на все ваши задания.
Когда вы выходите из терминала с помощью
CTRL+D
илиlogout
илиexit
, оболочка выходит без отправки SIGHUP на все задания. Это поведение по умолчанию, но может быть изменен путем установки Башshopt
настройкиhuponexit
.В конечном счете, если ваша цель - убедиться, что в фоновом режиме ничего не работает, нажмите «X».
,
Информация, предоставленная Джофелем в его комментарии, неверна (извините, Джофель). Эмулятор терминала не имеет ни малейшего представления, какие задания выполняются под оболочкой, поэтому он не может их завершить.
ПРИМЕЧАНИЕ .
Это поведение полностью зависит от оболочки. Вполне возможно, что разные оболочки имеют разные поведения по умолчанию.
источник
Ctrl+d
процесс наследуется PPID 1 = systemdНет никакой разницы. Настолько, что когда вы нажимаете ^ D, вы делаете то же самое, что и набираете «exit»:
источник
CTRL+D
иexit
так же, вопрос был о том, чтобы щелкнуть «X» оконного менеджера, чтобы закрыть окно, а не набирать текстexit
:-)