OsX Crontab não tem efeito

0

Eu estou dinamicamente anexando tarefas cron ao usuário crontab

As tarefas parecem estar chegando, crontab -e parece:

*/10 * * * * /bin/sh /Users/john/Kiosk/app/content/update.sh
@reboot /usr/bin/open /Users/john/Kiosk/startup.command

O problema é que parece não ter efeito.

O conteúdo do startup.command:

cd /Users/john/Kiosk/app && /usr/bin/python -m SimpleHTTPServer &
sleep 5 && open http://localhost:8000

O que estou errado?

Mild Fuzz
fonte

Respostas:

2

Não use caminhos relativos, mas cheios. Também com binários.

Então, sua linha deve ser

*/10 * * * * /usr/bin/sh /home/<username>/Kiosk/app/content/update.sh
@reboot open /home/<username>/Kiosk/startup.command
fedorqui
fonte
Certo! Foi um erro de digitação. Pode ser também /bin/sh, você pode saber digitando which sh.
fedorqui
Hmm, tudo mudou, mas a reinicialização certamente ainda não tem efeito!
Mild Fuzz
Você já tentou mudar open para /bin/open (ou... which open resultado)?
fedorqui
@reboot /usr/bin/open /Users/john/Kiosk/startup.command é o comando, que funciona quando colocado diretamente no terminal, mas não na reinicialização
Mild Fuzz
Eu adicionei mais conteúdo à pergunta, espero que isso ajude você.
Mild Fuzz
1

Tirar o comando aberto fez o truque

@reboot yourscript.command
Mild Fuzz
fonte
0

O caminho padrão é /usr/bin:/bine os tildes funcionam no crontab do usuário, então isso deve funcionar:

*/10 * * * * bash ~/Kiosk/app/content/update.sh

Você já tentou substituir update.sh com algo parecido com um comando para testá-lo?

@reboot funciona para mim quando reiniciar, mas não quando sair e voltar. @reboot open /test.txt não funcionou, mas * * * * * open /test.txt fez.

Você também pode salvar um plist assim como ~/Library/LaunchAgents/simplehttpserver.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>simplehttpserver</string>
    <key>ProgramArguments</key>
    <array>
        <string>python</string>
        <string>-m</string>
        <string>SimpleHTTPServer</string>
        <string>8000</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>WorkingDirectory</key>
    <string>/Users/john/Kiosk/app</string>
</dict>
</plist>

Pode ser carregado com launchctl load ~/Library/LaunchAgents/simplehttpserver.plist ou fazendo logout e retorno.

Lri
fonte