Post

Replies

Boosts

Views

Activity

Reply to Launchd ran job quits early
One more update. I have made a minimal demo which shows the issue. #!/usr/bin/env python3 # trying: python --version # in my shell gives this: Python 3.10.15 # /opt/pkg/bin/python3 fails exit(2) # /opt/pkg/bin/python fails exit(2) # /usr/bin/env python3 works exit(0), resolves to system supplied version! (3.6.9) # /usr/bin/env python fails exit(127) # /usr/bin/python3 works exit(0), system supplied version! import sys import os log_path = "/tmp/test_log.txt" # Simple location try: with open(log_path, "a") as f: f.write(str(sys.version)) f.flush() print("Write successful") except Exception as e: print(f"Error writing to file: {e}")
2w
Reply to Launchd ran job quits early
I'm going to update the post with some additional information, not sure if I can actually edit the post. The script itself is written in python and this script is launched by a shell_wrapper.sh which does exit with status 0. Turns out that if I instead launch the python script directly, it exits with status 127. So using the wrapper was just hiding the exit code. I have the Xcode developer tools installed and the supplied system version of Python which I believe is 3.9. In addition to this I have also installed, Python version 3.10 with the pkgsrc package manager, to resolve which Python version to use, I do #!/usr/bin/env python, now this seems to have confused launchd, so I hardcoded the path to my version of Python like this: #!/opt/pkg/bin/python and now I get an exit code 2, when the script is launched by launchctl kickstart. I also have some python modules that I have installed like selectolax, maybe those can't be found by launchd, which may have different env variables set than my user environment.
2w