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