5 votes

Problème avec le script de démarrage `rc.local`

Jusqu'à OS X 10.9, je pouvais également exécuter Bootcamp dans Virtualbox (à travers un fichier .vmdk). Pour ce faire, je devais démonter la partition Bootcamp après avoir modifié les autorisations pendant le processus de démarrage d'OS X dans le fichier rc.local. Maintenant, avec OS X 10.10 rc.local ne semble plus fonctionner et je ne peux pas démarrer ma machine virtuelle sans exécuter d'abord manuellement les commandes terminal qui se trouvent dans mon script rc.local.

Voici le contenu de mon rc.local:

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

J'ai compris que rc.local n'est plus pris en charge dans Yosemite et que launchd devrait être utilisé à la place. Source: Comment faire : Exécuter Windows 7 (Bootcamp) dans VirtualBox.

Est-ce que quelqu'un peut m'aider avec un script valide et me montrer comment l'utiliser?

5voto

Vishnu Kumar Points 131

J'utilisais ces commandes pour VirtualBox dans rc.local, et j'ai rencontré le même problème. Je ne sais pas si c'est la bonne méthode pour le faire, mais cela fonctionne pour moi.

J'ai créé /Library/LaunchDaemons/local.localhost.startup.plist contenant le code ci-dessous. Il exécute le script rc.local une fois au démarrage.

    Label             local.localhost.startup
    Disabled          
    RunAtLoad         
    KeepAlive         
    LaunchOnlyOnce    
    ProgramArguments

            /etc/rc.local

2voto

Yuri Points 126

Ce plist n'est pas tout à fait correct, essayez donc ce qui suit :

    Label
    local.localhost.startup
    Disabled

    RunAtLoad

    KeepAlive

    LaunchOnlyOnce

    Program
    /bin/bash
    ProgramArguments

            /etc/rc.local

1voto

rex_nkana Points 1

Assurez-vous également que rc.local a la permission d'exécuter, via un sudo chmod 755 /etc/rc.local

Le LaunchDaemon ne signale pas explicitement une erreur, j'ai donc été confronté à ce problème jusqu'à ce que je change les permissions.

1voto

kenorb Points 11627

Depuis Mac OS X 10.4, les éléments de démarrage tels que le fichier /etc/rc.local ou le dossier /Library/StartupItems sont obsolètes au profit des démons et agents launchd.source

Consultez la page de documentation Création de Daemons et Agents de Lancement pour plus de détails.

Par exemple, voici l'exemple qui lance un daemon nommé hello, passant world en tant qu'argument unique et indiquant à launchd de maintenir le processus en cours d'exécution :

    Label
    com.example.hello
    ProgramArguments

        hello
        world

Il y a deux clés dans le dictionnaire de niveau supérieur :

  • Label - identifie de manière unique le travail,
  • ProgramArguments - une valeur d'un tableau de chaînes qui représentent les arguments tokenisés et le programme à exécuter.

Voici un exemple pratique pour augmenter les ressources système.


Les emplacements des démons de démarrage sont /System/Library/LaunchDaemons et /Library/LaunchDaemons.

L'emplacement des agents de démarrage est /System/Library/LaunchAgents, /Library/LaunchAgents et le dossier Library/LaunchAgents individuel de l'utilisateur.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X