SIGHUP
(riagganciare) dirà al terminale di uscire. Il terminale dovrebbe essere il processo genitore del tuo script, quindi
import os
import signal
os.kill(os.getppid(), signal.SIGHUP)
Invece di eseguire il comando dalla shell con solo il nome del comando, eseguilo con exec
che farà sì che la shell si sostituisca con il programma. Quindi, quando il programma esce, si chiuderà anche la finestra del terminale.
Cioè. invece di
$ python ./my_script.py
eseguire:
$ exec python ./my_script.py