我正在设置launchctl服务器以定期运行python文件。所以我写了一个.plist文件,一个auto.sh文件,它运行良好。 但是,在安装Macos Catalina之后,它失败了。 我在auto.sh中写“ ls -l”来检查文件权限, 日志显示:
ls: .: Operation not permitted
python3: can't open file 'auto.py': [Errno 1] Operation not permitted
我该如何解决?非常感谢。
这是我的代码:
auto.sh:
#!/bin/bash
. ~/.bash_profile
conda activate base
cd /Users/gassy/Documents/
ls -l
python3 auto.py
我将这样的.plist文件放在/Users/gassy/Library/LaunchAgents/com.gassy.fangzhou.plist
...
<key>Program</key>
<string>/Users/gassy/auto/launch.sh</string>
...
答案 0 :(得分:15)
答案 1 :(得分:0)
我认为您遇到的问题不在于Python,而是auto.py
上的文件许可权或通往它的路径。使用哪个用户帐户运行脚本?该用户是否对这些可执行文件和父目录都具有必需的权限?我怀疑目录权限是ls
和auto.py
一起失败。
如果将所有内容移出/Users/gassy/Documents
并移至另一个位置(可能位于/opt
或/var
或类似位置,则可能会有些运气,然后确保权限是合理的)。我知道macos对/Users/<user>
下的某些导演特别对待,有时以一种不太有用的方式...
答案 2 :(得分:0)
在运行chmod
之前,在bash脚本中使用python3 auto.py
命令来更改文件的权限。
chmox +x auto.py
应该可以,但是我建议您阅读有关它的更多信息,并具体说明您的用例。
答案 3 :(得分:0)
@mingxin 解决方案的修改对我有用:基本上相同的步骤,但不是在安全和隐私中授予对 bash
的完整磁盘访问权限,而是授予对 python3
的完全访问权限(在我的 Big Sur macOS 系统在 /usr/bin
)。