I'm setting up a launchctl server to run a python file regularly. So I write a.plist file , auto.sh file and it works well. However, after I installed Macos Catalina, it failed. I write "ls -l" in auto.sh to check file permission, log shows that:
ls: .: Operation not permitted
python3: can't open file 'auto.py': [Errno 1] Operation not permitted
How can I do to fix it? Thank you so much.
here is my code:
auto.sh:
#!/bin/bash
. ~/.bash_profile
conda activate base
cd /Users/gassy/Documents/
ls -l
python3 auto.py
I put such .plist file in /Users/gassy/Library/LaunchAgents/com.gassy.fangzhou.plist
...
<key>Program</key>
<string>/Users/gassy/auto/launch.sh</string>
...
Finally figure it out...
It's a problem related to Catalina new permission system, the /bin/bash
need to have the [full disk access].
I think the problem you have is not with Python, but with the file permissions on auto.py
or the path leading up to it. What user account is used to run the script? Does that user have the necessary permissions on both those executables and the parent directory? Reason I suspect directory permissions is that ls
is failing along with auto.py
.
You might have some luck if you move everything out of /Users/gassy/Documents
and to another location, perhaps under /opt
or /var
or similar, and then make sure that the permissions are sane. I know that macos treats some of those directores under /Users/<user>
special, sometimes in a less-than-helpful way...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With