2

У меня есть скрипт на python в virtualenv (ENV), который вызывает другие модули в ENV. Я хочу запускать скрипт в определенное время каждый день. Поэтому, находясь на OS X, я должен использовать launchd.

Я написал .plist и поместил в ~/Library/LaunchAgents для использования пользователем. Я загрузил .plist, но получаю сообщение об ошибке в консоли:

14/03/13 10: 51: 50.000 PM ядро [0]: ПОДПИСАНИЕ КОДА: cs_invalid_page(0x10ce98000): p = 1279 [python] очистка CS_VALID

Я подтвердил, что это сообщение связано со сценарием или процессом запуска, установив для ключа .plist StartInterval значение 15 и видя, что сообщение появляется каждые 15 секунд.

Вот список .plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.dayone.archive</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/css/Working/PythonScripts/ENV/bin/python</string>
        <string>/Users/css/Working/PythonScripts/ENV/bin/recentLinks.py</string>
    </array>
    <key>StartInterval</key>
    <integer>15</integer>
    <key>KeepAlive</key>
    <true/>
    <key>WorkingDirectory</key>
    <string>/Users/css/Working/PythonScripts/ENV/bin</string>
</dict>
</plist>

Я попробовал .plist с помощью скрипта bash, который также вызывает скрипт python (!) но получил тот же результат. Конечно, у меня нет проблем с запуском bash-скрипта из терминала.

1 ответ1

0

Проблема была не в .plist или launchd, а не в CODE SIGNING, как указывалось в сообщении об ошибке консоли.

Линк Дэвис из Apple Communities помог мне найти проблему: основной скрипт на python НЕ вызывал абсолютный путь двоичного файла, который он вызывал. Launchd работал прекрасно, когда это было исправлено. Урок выучен.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .