Безопасно ли закрывать оболочку, просто нажав «X» или используя «ctrl + d»?

Безопасно ли закрывать оболочку, просто нажав «X» или используя «ctrl + d» во время входа в систему с правами пользователя root или su, или безопаснее закрыть ее, набрав «exit»? Есть ли какая-либо разница (безопасная) вообще или она то же самое, и не имеет значения, какой способ вы используете?

    Ctrl-D или exit одинаковы.

    Если вы используете «X», диспетчер окон отправляет сигнал завершения в оболочку. Который имеет в конечном итоге тот же результат. Если оболочка не реагирует, пользователь обычно получает предупреждение и может заставить оболочку закончить (равный kill -9 $PID ).

    Существует одна небольшая разница между «X» и «exit-method», если вы используете zsh качестве оболочки: если вы выполняете фоновый процесс, exit / ctrl-D создает первый раз только предупреждение «у вас есть рабочие задания», , второй раз оболочка закрыта. С помощью кнопки «X» оболочка немедленно завершается без каких-либо предупреждений.

    Закрытие эмулятора терминала не совпадает с нажатием CTRL + D (если не установлена ​​опция huponexit ).

    • Когда вы закрываете терминал (нажав «X»), эмулятор терминала отправляет SIGHUP в оболочку. Когда bash получает SIGHUP, он также отправляет SIGHUP ко всем вашим заданиям.

    • Когда вы выходите из терминала с помощью CTRL+D или exit logout или exit , оболочка выходит без отправки SIGHUP ко всем заданиям. Это поведение по умолчанию, но его можно изменить, установив настройку bash shopt huponexit .

    Таким образом, в конечном счете, если ваша цель состоит в том, чтобы убедиться, что в фоновом режиме ничего не работает, его safter нажать «X».

    ,

    Информация, предоставленная jofel в его комментарии, неверна (извините jofel). Эмулятор терминала не знает, какие задания выполняются под оболочкой, поэтому он не может их прекратить.

    ПРИМЕЧАНИЕ .
    Это поведение полностью зависит от оболочки. Вполне возможно, что разные оболочки имеют разное поведение по умолчанию.

    Нет никакой разницы. Настолько, что, когда вы нажимаете ^ D, вы делаете то же самое, что и ввод «exit»:

     $ su - Password: # [press ^D] logout