
Tengo acceso a un shell de Linux remoto por motivos laborales. He mantenido un script de Python ejecutándose en segundo plano usando nohup
.
Ahora bien, si quiero salir de la sesión, ¿cuál es la diferencia entre usar los comandos logout
y exit
? ¿Mi secuencia de comandos seguirá ejecutándose en ambos casos?
Respuesta1
logout
es un comando interno del shell. Por lo general, la respuesta depende del caparazón. De man bash
:
logout
– Salir de un shell de inicio de sesión.
De man zsh
:
logout [ n ]
– Igual que salir, excepto que sólo funciona en un shell de inicio de sesión.
Entonces son completamente iguales, pero el cierre de sesión simplemente se negará a funcionar para shells sin inicio de sesión. Lo que es un shell de inicio de sesión se puede leer en las páginas del manual.
Respuesta2
Pruebe ambos en su terminal local. Si desea utilizar "cerrar sesión", debe "iniciar sesión". En su terminal, de forma predeterminada, nunca inicia el shell al iniciar sesión, por lo que si desea cerrar la terminal, debe usar "salir". No es un "shell de inicio de sesión".
En el shell ssh remoto es indiferente porque estás usando un "shell de inicio de sesión". Cuando usa nohub o similar, está "separando" el comando del shell real, por lo que cuando cierra el shell el proceso no muere.