Nohup и разница между выходом из системы и выходом на удаленной оболочке

У меня есть доступ к удаленной оболочке Linux для рабочих целей. Я оставил скрипт Python в фоновом режиме, используя nohup,

Теперь, если я хочу выйти из сессии, какая разница между logout а также exit команды? Будет ли мой сценарий работать в обоих случаях?

2 ответа

logout это внутренняя команда оболочки Так что обычно ответ зависит от оболочки. От man bash:

logout - Выход из оболочки входа в систему.

От man zsh:

logout [ n ] - То же, что и выход, за исключением того, что он работает только в оболочке входа.

Таким образом, они абсолютно одинаковы, но выход из системы просто откажется работать для оболочек без входа в систему. Что такое оболочка входа в систему, можно прочитать на страницах руководства.

Попробуйте оба в вашем местном терминале. Если вы хотите использовать "выход", вам нужно быть "логин". В вашем терминале по умолчанию вы никогда не запускаете оболочку с логином, поэтому, если вы хотите закрыть терминал, вам нужно использовать "выход". Это не "оболочка для входа".

В удаленной оболочке ssh безразличен, потому что вы используете "оболочку входа". Когда вы используете nohub или подобное, вы "отсоединяете" команду от реальной оболочки, поэтому, когда вы закрываете оболочку, процесс не умирает.

Другие вопросы по тегам