Saiu com o código: 1 Erro com o launchd

0

Estou tentando executar um trabalho com launchd , que executa um script de shell que cria um arquivo zip e, em seguida, faz o backup.

Estou recebendo o erro: 6/26/13 5:04:37.992 PM com.apple.launchd.peruser.501[162]: (com.ian.evernote[18163]) Exited with code: 1

Aqui está meu launchd 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.ian.evernote</string>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/user/Dropbox/evernote.sh</string>
    </array>
    <key>StartInterval</key>
    <integer>3600</integer>

    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Aqui está o meu script de shell:

#!/bin/bash

sudo zip -r ~/Documents/evernote_backup /Users/user/Library/Containers/com.evernote.Evernote/Data/Library

O script de shell é executado corretamente no terminal. O que estou fazendo errado?

    
por ian 27.06.2013 / 02:14

1 resposta

0

Você não pode executar sudo dentro do script. Quem vai digitar a senha? Por que você precisa disso em primeiro lugar? Parece que você está operando dentro de sua pasta pessoal, onde você deve ter todas as permissões desejadas.

Existem duas soluções.

  • Você precisa de privilégios elevados

Torne este trabalho um daemon de ativação em vez de um agente. Certifique-se de alterar os caminhos para os absolutos ( ~ será expandido para o diretório inicial dos usuários em execução, que é / para daemons de ativação).

  • Você está bem com os privilégios padrão

Não use sudo .

Além disso: Como o script consiste em uma única linha, sugiro que você solte o script e chame zip diretamente:

<key>ProgramArguments</key>
<array>
    <string>/usr/bin/zip</string>
    <string>-r</string>
    <string>/Users/user/Documents/evernote_backup</string>
    <string>/Users/user/Library/Containers/com.evernote.Evernote/Data/Library</string>
</array>
    
por 27.06.2013 / 03:50