Come aggiungere il programma di avvio usando Terminal?

0

Onestamente, sto trovando launchctl di Apple e plist ( XML?) È un po 'confuso e eccessivo. Usando Terminale, voglio solo dire hey, macOS, avviare program.app all'avvio! o hey, macOS, avvia il mio /path/to/shell.sh all'avvio!

Come posso aggiungere un elemento di avvio --remotely tramite Terminal / SSH / Netcat / riga di comando / shell?

sh-3.2# system_profiler SPSoftwareDataType 
Software:

    System Software Overview:

      System Version: macOS 10.13.4 (17E199)
      Kernel Version: Darwin 17.5.0
      Boot Volume: lily
      Boot Mode: Normal
      Computer Name: lily’s MacBook Air
      User Name: System Administrator (root)
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled
      Time since boot: 2:03
    
posta lily 18.05.2018 - 05:29
fonte

1 risposta

2

LaunchDaemons - Esegui all'avvio

LaunchAgents - Esegui all'accesso

Quindi ... hai bisogno di un demone

suggerisci di cat /System/Library/LaunchDaemons/com.apple.pfctl.plist o di qualsiasi altro nella stessa dir e utilizzalo come riferimento.

Basta rimuovere inutili. Sarà qualcosa del genere:

<?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>Disabled</key>
    <false/>
    <key>Label</key>
    <string>shell.sh</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/shell.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

salva il file nella stessa dir, ma chiama shell.sh.plist ed esegui

sudo launchctl load /System/Library/LaunchDaemons/shell.sh.plist

per rimuovere lo script dalla lista di caricamento:

sudo launchctl unload /System/Library/LaunchDaemons/shell.sh.plist

questo non è linux quindi le cose sono fatte in modo Mac.

man launchd & man launchd.plist fornirà tutte le informazioni necessarie

O

puoi utilizzare un approccio descritto qui

Crea .plist una sola volta e indirizzalo allo script di avvio che a sua volta avvierà tutto ciò che aggiungi lì senza dover scrivere nuovo .plist ogni volta che vuoi iniziare qualcosa di nuovo.

    
risposta data 18.05.2018 - 11:20
fonte

Leggi altre domande sui tag