Mac OS 升级后如何恢复我的 Python cron 作业?
How do I restore my Python cron jobs after my Mac OS upgrade?
我最近升级到 Mac Big Sur 并注意到我的 Python 3.8 cron 作业已停止工作。在我自己的 bash shell 帐户下,我可以 运行 这没有问题...
davea$ cd /Users/davea/Documents/workspace/article_project; source ./venv/bin/activate; python3 manage.py check_duplicates
在我的 crontab 中,我进行了这样的设置,它在升级之前可以正常工作...
*/5 * * * * /bin/bash -l -c 'cd /Users/davea/Documents/workspace/article_project; source ./venv/bin/activate; python manage.py check_duplicates >> /Users/davea/logs/record2.txt 2>&1'
但是,在升级之后,我注意到我的命令从未 运行 并且我在我的日志文件中看到了这个问题
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3: can't open file 'manage.py': [Errno 1] Operation not permitted
这些是我的“manage.py”文件中的 permissions/groups...
davea$ ls -al manage.py
-rwxrwxr-x 1 davea staff 866 Apr 15 2019 manage.py
我还需要做什么才能让我的 cron 作业再次 运行?
我认为在这种情况下,python3被认为是“任何用户”并且具有-rwxrwxr
权限它只有读取文件的权限,尝试运行 chmod 775 manage.py
在您的文件夹中添加 manage.py
的权限以供“任何用户”执行(权限应设置为 -rwxrwxr
),希望对您有所帮助。
编辑:从技术上讲,读取权限应该足以让 python 到 运行 一个文件,但我看不出出现此错误的另一个原因,如果您找到一个 [=14] 我会很感兴趣=]
这看起来像是 SIP 或其他 mac 特定的访问权限错误,特别是因为它刚好在升级之后。可能是:https://osxdaily.com/2018/10/09/fix-operation-not-permitted-terminal-error-macos/
我在使用带有 cron 的 venvs 时也遇到了很多问题,可能与此有关:
错误来自 /Library/Frameworks/Python.framework/Versions/3.8/bin/python3
也很奇怪,而我认为如果正确激活它应该来自您的 venv。
事实证明,新的 Mac OS 需要启用额外级别的权限。在“系统偏好设置”中的“安全和隐私”下,我单击“隐私”选项卡,然后将“cron”添加到“全盘访问”列表
然后 cron 作业 运行 没有权限错误。
我最近升级到 Mac Big Sur 并注意到我的 Python 3.8 cron 作业已停止工作。在我自己的 bash shell 帐户下,我可以 运行 这没有问题...
davea$ cd /Users/davea/Documents/workspace/article_project; source ./venv/bin/activate; python3 manage.py check_duplicates
在我的 crontab 中,我进行了这样的设置,它在升级之前可以正常工作...
*/5 * * * * /bin/bash -l -c 'cd /Users/davea/Documents/workspace/article_project; source ./venv/bin/activate; python manage.py check_duplicates >> /Users/davea/logs/record2.txt 2>&1'
但是,在升级之后,我注意到我的命令从未 运行 并且我在我的日志文件中看到了这个问题
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3: can't open file 'manage.py': [Errno 1] Operation not permitted
这些是我的“manage.py”文件中的 permissions/groups...
davea$ ls -al manage.py
-rwxrwxr-x 1 davea staff 866 Apr 15 2019 manage.py
我还需要做什么才能让我的 cron 作业再次 运行?
我认为在这种情况下,python3被认为是“任何用户”并且具有-rwxrwxr
权限它只有读取文件的权限,尝试运行 chmod 775 manage.py
在您的文件夹中添加 manage.py
的权限以供“任何用户”执行(权限应设置为 -rwxrwxr
),希望对您有所帮助。
编辑:从技术上讲,读取权限应该足以让 python 到 运行 一个文件,但我看不出出现此错误的另一个原因,如果您找到一个 [=14] 我会很感兴趣=]
这看起来像是 SIP 或其他 mac 特定的访问权限错误,特别是因为它刚好在升级之后。可能是:https://osxdaily.com/2018/10/09/fix-operation-not-permitted-terminal-error-macos/
我在使用带有 cron 的 venvs 时也遇到了很多问题,可能与此有关:
错误来自 /Library/Frameworks/Python.framework/Versions/3.8/bin/python3
也很奇怪,而我认为如果正确激活它应该来自您的 venv。
事实证明,新的 Mac OS 需要启用额外级别的权限。在“系统偏好设置”中的“安全和隐私”下,我单击“隐私”选项卡,然后将“cron”添加到“全盘访问”列表
然后 cron 作业 运行 没有权限错误。