script python em virtualenv e launchd on Mountain Lion

2

Eu tenho um script python em um virtualenv (ENV) que chama outros módulos no ENV. eu quero para executar o script em um determinado horário todos os dias. Portanto, estando no OS X, eu deveria usar o launchd.

Eu escrevi um .plist e coloquei ~ / Library / LaunchAgents para uso por usuário. Eu carreguei o .plist, mas estou recebendo um erro no meu console da seguinte variedade:

14/03/13 10:51:50.000 PM kernel[0]: CODE SIGNING: cs_invalid_page(0x10ce98000): p=1279[python] clearing CS_VALID

Confirmei que essa mensagem está relacionada ao script ou ao processo de lançamento, configurando a chave .plist StartInterval como 15 e vendo a mensagem a cada 15 segundos.

Aqui está o .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>

Eu tentei o .plist com um script bash chamando o script python também (!), mas obtive o mesmo resultado. Claro, não tenho nenhum problema em executar o script bash do terminal.

    
por c ss 14.03.2013 / 16:56

1 resposta

0

O problema não foi com o .plist ou com o launchd, nem com o CODE SIGNING como o erro do console sugerido.

Linc Davis, do Apple Communities, me ajudou a encontrar o problema: O script principal do python NÃO chamou o caminho absoluto de um binário que ele estava chamando. Launchd trabalhou lindamente depois que isso foi corrigido. Lição aprendida.

    
por 18.03.2013 / 12:51