Problema con lo script di avvio 'rc.local'

5

Fino a OS X 10.9 potrei anche eseguire Bootcamp all'interno di Virtualbox (attraverso un file .vmdk). Per fare ciò, avevo bisogno di smontare la partizione Bootcamp dopo aver modificato le autorizzazioni durante il processo di avvio di OS X nel file rc.local. Ora, con OS X 10.10% dirc.local non sembra funzionare più e non posso avviare la mia macchina virtuale senza prima eseguire manualmente i comandi del terminale che sono nel mio script rc.local.

Ecco il mio contenuto rc.local :

sudo chmod 777 /dev/disk0s4
diskutil unmount /dev/disk0s4

Ho capito che rc.local non è più supportato in Yosemite e launchd dovrebbe invece essere usato. Origine :: Procedura: eseguire Windows 7 (Bootcamp ) in VirtualBox .

Qualcuno può aiutarmi con uno script valido e mostrarmi come usarlo?

    
posta Telemakos 28.10.2014 - 09:22
fonte

4 risposte

5

Stavo usando quei comandi per VirtualBox in rc.local e mi sono imbattuto nello stesso problema. Non lo faccio se questo è il modo giusto per farlo, ma funziona per me.

Ho creato /Library/LaunchDaemons/local.localhost.startup.plist contenente il codice seguente. Esegue lo script rc.local una volta all'avvio.

<?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>Label</key>             <string>local.localhost.startup</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <false/>
    <key>LaunchOnlyOnce</key>    <true/>
    <key>ProgramArguments</key>
        <array>
            <string>/etc/rc.local</string>
        </array>
</dict>
</plist>
    
risposta data 03.11.2014 - 05:04
fonte
1

Assicurati anche che rc.local abbia il permesso di eseguire, tramite a     sudo chmod 755 /etc/rc.local

LaunchDaemon non segnala esplicitamente un errore, quindi sono stato morso da questo fino a quando ho cambiato le autorizzazioni.

    
risposta data 13.11.2014 - 01:16
fonte
1

Questo plist non è corretto, quindi prova quanto segue:

<?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>Label</key>
    <string>local.localhost.startup</string>
    <key>Disabled</key>
    <false/>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <false/>
    <key>LaunchOnlyOnce</key>
    <true/>
    <key>Program</key>
    <string>/bin/bash</string>
    <key>ProgramArguments</key>
        <array>
            <string>/etc/rc.local</string>
        </array>
</dict>
</plist>
    
risposta data 26.02.2016 - 19:47
fonte
1

Da Mac OS X 10.4, gli elementi di avvio come /etc/rc.local file o /Library/StartupItems sono deprecati a favore di launchd daemon e agenti. fonte

Controlla Creazione di Demoni di lancio e agenti pagina di documentazione per ulteriori dettagli.

Ad esempio, ecco l'esempio che lancia un demone chiamato hello , che passa world come un singolo argomento e istruisce launchd a mantenere il lavoro in esecuzione:

<?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.example.hello</string>
    <key>ProgramArguments</key>
    <array>
        <string>hello</string>
        <string>world</string>
    </array>
</dict>
</plist>

Ci sono due chiavi nel dizionario di primo livello:

  • Label - identifica univocamente il lavoro,
  • ProgramArguments - un valore di una matrice di stringhe che rappresenta gli argomenti con token e il programma da eseguire.

Ecco l'esempio pratico per aumentare le risorse di sistema .

Le posizioni per i daemon di avvio sono /System/Library/LaunchDaemons e /Library/LaunchDaemons .

Il percorso per gli agenti di avvio è /System/Library/LaunchAgents , /Library/LaunchAgents e la singola cartella Library/LaunchAgents dell'utente.

    
risposta data 11.01.2018 - 16:39
fonte

Leggi altre domande sui tag