Uruchamianie agenta launchd bez uniemożliwiania spania macbookowi

0

Mam agenta / demona, który uruchamia skrypt kopii zapasowej (używam restrykcyjny ) o 4:05 na StartCalendarInterval. Rozumiem, że jeśli działa agent uruchamiający, powinno to uniemożliwić osxowi uśpienie. Czy to źle?

Widzę, że mój skrypt częściowo działał, ponieważ w repozytorium utworzono migawkę, ale kiedy poszedłem sprawdzić migawkę, repo miało blokadę, która wskazywała mi, że coś się stało w połowie.

Oto mój plik plist dla agenta.

<?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>backup.restic.username</string>
                <key>ProgramArguments</key>
                <array>
                        <string>/Users/username/Documents/scripts/backup.sh</string>
                </array>
                <key>StartCalendarInterval</key>
                <dict>
                        <key>Minute</key>
                        <integer>5</integer>
                        <key>Hour</key>
                        <integer>4</integer>
                </dict>
        </dict>
</plist>

Czy mogę coś dodać, aby zapobiec spaniu? Powiem, że macbook nie był podłączony i miał 35% baterii, kiedy się obudziłem.

user650271
źródło
Prawdopodobnie nie ma to związku z problemem, ale czy jest to problem z kopiowaniem / wklejaniem, czy też twoja plist zawiera dwa pierwsze wiersze dwa razy?
nohillside
1
Jeśli chodzi o pytanie jako takie: sprawdź man caffeinate i kilka pytań / odpowiedzi na tej stronie dotyczących jej użycia i ograniczeń.
nohillside
@nohillside, problem z kopiowaniem / wklejaniem. Przepraszam! Krótkie spojrzenie i kofeina wydaje się być tym, czego potrzebuję. Dzięki!
user650271

Odpowiedzi:

1

@nohillside dał mi to, czego szukać. Zaktualizowano, aby użyć kofeiny, aby zapobiec spaniu dysku i systemu.

<?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>backup.restic.username</string>
                <key>Program</key>
                <string>/usr/bin/caffeinate</string>
                <key>ProgramArguments</key>
                <array>
                        <string>-im</string>
                        <string>/Users/username/Documents/scripts/backup.sh</string>
                </array>
                <key>StartCalendarInterval</key>
                <dict>
                        <key>Minute</key>
                        <integer>5</integer>
                        <key>Hour</key>
                        <integer>4</integer>
                </dict>
        </dict>
</plist>
user650271
źródło
1
Podczas używania ProgramArguments pierwszy ciąg jest faktycznie przypisany $0 podczas wykonywania (tak samo powinna być nazwa programu).
nohillside
Przetestowałem to kilka razy launchctl start backup.restic.username i działa zgodnie z przeznaczeniem. Nie widzę żadnych błędów /var/log/system.log także. Czy może to być zmiana wersji launchd? Opierając się na moim googlu, bardzo się zmieniły w ostatnich latach: D. Edytuj: Wygląda na to, że masz rację, JEŚLI nie użyjesz klucza Program.
user650271