Nohup и разница между выходом из системы и выходом на удаленной оболочке
У меня есть доступ к удаленной оболочке Linux для рабочих целей. Я оставил скрипт Python в фоновом режиме, используя nohup,
Теперь, если я хочу выйти из сессии, какая разница между logout а также exit команды? Будет ли мой сценарий работать в обоих случаях?
2 ответа
logout это внутренняя команда оболочки Так что обычно ответ зависит от оболочки. От man bash:
logout- Выход из оболочки входа в систему.
От man zsh:
logout [ n ]- То же, что и выход, за исключением того, что он работает только в оболочке входа.
Таким образом, они абсолютно одинаковы, но выход из системы просто откажется работать для оболочек без входа в систему. Что такое оболочка входа в систему, можно прочитать на страницах руководства.
Попробуйте оба в вашем местном терминале. Если вы хотите использовать "выход", вам нужно быть "логин". В вашем терминале по умолчанию вы никогда не запускаете оболочку с логином, поэтому, если вы хотите закрыть терминал, вам нужно использовать "выход". Это не "оболочка для входа".
В удаленной оболочке ssh безразличен, потому что вы используете "оболочку входа". Когда вы используете nohub или подобное, вы "отсоединяете" команду от реальной оболочки, поэтому, когда вы закрываете оболочку, процесс не умирает.