как исправить "Операция не разрешена", когда я использую launchctl в Macos Catalina - PullRequest
2 голосов
/ 18 октября 2019

Я настраиваю сервер launchctl для регулярного запуска файла python. Поэтому я пишу файл .plist, файл auto.sh, и он работает хорошо. Однако после того, как я установил Macos Catalina, это не удалось. Я пишу "ls -l" в auto.sh для проверки прав доступа к файлу, журнал показывает, что:

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>
    ...

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Измените права доступа к файлу с помощью команды chmod в вашем bash-скрипте, прежде чем запускать python3 auto.py.

chmox +x auto.py, но я бы порекомендовал вам прочитать об этом больше иБудьте конкретны в вашем случае использования.

0 голосов
/ 18 октября 2019

Я думаю, что у вас проблема не с Python, а с правами доступа к файлу на auto.py или путем, ведущим к нему. Какая учетная запись пользователя используется для запуска скрипта? Имеет ли этот пользователь необходимые разрешения как для этих исполняемых файлов, так и для родительского каталога? Причина, по которой я подозреваю, что права доступа к каталогу, заключается в том, что ls не работает вместе с auto.py.

. Возможно, вам повезет, если вы переместите все из /Users/gassy/Documents в другое место, возможно, под /opt или /var или аналогичный, а затем убедитесь, что разрешения нормальны. Я знаю, что macos рассматривает некоторые из этих директоров в соответствии со /Users/<user> особыми, иногда менее чем полезными способами ...

...