Python script embedded in bash, does not exit
bash, continue, python, terminate
Solution
What `sys.exit()` does is throw an exception of type `SystemExit`. If your script were to catch this exception, it would continue executing past `sys.exit()`.
Also, if you have non-daemon threads, these could be preventing the process from terminating.
If that's the case, you can either turn them into daemon threads, or somehow signal to them that you wish to exit the script, and let them shut themselves down.
Finally, there's `os._exit()`, but you should not have to resort to that.
Problem
I'm having a curious problem. I have a bash script that is calling a python script within it. The python script executes successfully, but never fully terminates Content of Bash script: ``` #! /usr/bin/env bash python python_script.py echo "bar" ``` content of Python script: ``` #Much stuff sys.exit("The python script just ended") ``` What I expect to see on termination would be: ``` >The python script just ended >bar ``` What I instead get is: ``` >The python script just ended ``` If I keyboard interrupt, the bash continues as: ``` ^C>bar ``` What gives? Clearly the exit is calling properly, and there is nothing between that and the output statement in the bash script that called the python script. (I can't necessarily give specifics on the workings of the "Much stuff" in the python script, as I'm modifying existing code that I don't fully understand. I've mostly left the workings of the script alone, and modified output more than anything for formatting, but I'm happy to try and provide you with any additional information requested)