
Tenho acesso a um shell Linux remoto para fins de trabalho. Eu mantive um script python rodando em segundo plano usando nohup
.
Agora, se eu quiser sair da sessão, qual a diferença entre usar logout
e exit
comandos? Meu script continuará sendo executado em ambos os casos?
Responder1
logout
é um comando interno do shell. Geralmente, a resposta depende do shell. De man bash
:
logout
– Saia de um shell de login.
De man zsh
:
logout [ n ]
– O mesmo que exit, exceto que funciona apenas em um shell de login.
Portanto, eles são completamente iguais, mas o logout simplesmente se recusará a funcionar para shells que não sejam de login. O que é um shell de login pode ser lido nas páginas de manual.
Responder2
Experimente ambos em seu terminal local. Se quiser usar "logout", você precisa estar "login". No seu terminal por padrão você nunca inicia o shell com login, então se quiser fechar o terminal você precisa usar "exit". Não é um "shell de login".
No shell ssh remoto é indiferente porque você está usando um "shell de login". Ao usar nohub ou similar, você "desconecta" o comando do shell real, para que, ao fechar o shell, o processo não morra.