当我在 macos catalina 中使用 launchctl 时如何修复“不允许操作”

我正在设置一个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>

    ...


月关宝盒
浏览 200回答 3
3回答

慕无忌1623718

终于想通了...这是Catalina新权限系统的问题,/bin/bash需要【全盘访问】。

开心每一天1111

我认为您遇到的问题不在于 Python,而在于文件权限auto.py或通向它的路径。使用什么用户帐户来运行脚本?该用户是否对这些可执行文件和父目录都具有必要的权限?我怀疑目录权限的原因ls是与auto.py.如果您将所有内容移出/Users/gassy/Documents并移至另一个位置(可能在下方/opt或/var类似位置),然后确保权限正常,您可能会有一些运气。我知道macos/Users/<user>特别对待其中一些导演,有时以一种不太有用的方式......

九州编程

chmod在运行之前,使用 bash 脚本中的命令更改文件的权限python3 auto.py。chmox +x auto.py应该这样做,但是我建议您阅读更多相关信息并具体说明您的用例。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python