8

I have access to a remote Linux shell for work purposes. I have kept a python script running in the background using nohup.

Now, if I want to exit the session, what is the difference between using logout and exit commands? Will my script keep running in both of these cases?

slhck
  • 235,242

2 Answers2

5

logout is an internal command of the shell. So generally the answer is shell-dependent. From man bash:

logout – Exit a login shell.

From man zsh:

logout [ n ] – Same as exit, except that it only works in a login shell.

So they're completely the same, but logout will simply refuse to work for non-login shells. What is a login shell can be read in manual pages.

slhck
  • 235,242
0

Try both in your local terminal. If you want use "logout", you need be "login". In your terminal by default you never start the shell with login, so if you want close the terminal you need use "exit". It isn't a "login shell".

In remote ssh shell is indifferent because you're using a "login shell". When you use nohub or similar, you are "detach" the command from the actual shell, so when you close your shell the process doesn't die.