How to Exit Linux terminal using Python script?

2019-01-28 02:49发布

问题:

import sys

def end():
    foo=raw_input()
    sys.exit()

print 'Press enter to Exit python and Terminal'

end()

When we run the program, we should able to exit the Python Interpreter and Terminal itself. But it only exits python interpreter, not the terminal.

Thanks in advance.

回答1:

SIGHUP (hang up) will tell the terminal to exit. The terminal should be your script's parent process, so

import os
import signal
os.kill(os.getppid(), signal.SIGHUP)


回答2:

Instead of running the command from the shell with just the command name, run it with exec which will cause the shell to replace itself with the program. Then when the program exits the terminal window will close as well.

I.e. instead of

$ python ./my_script.py

run:

$ exec python ./my_script.py