Allegro Posté(e) le 2 décembre 2007 Partager Posté(e) le 2 décembre 2007 Bonjour à tous, Voilà mon souci. J'ai installé Apache2 sur mon Powerbook, et je voudrais qu'il soit lancé à chaque démarrage de mon ordi. J'imagine qu'il y a plusieurs façons de faire ... après recherches, j'ai cru comprendre que le mieux était d'utiliser launchd. S'il faut faire comme ça, pourriez-vous m'expliquer quoi taper dans le .plist, parce que je ne comprends pas ce qu'il faut écrire dans <key> ou <string> par exemple ... Sinon, pourriez-vous m'indiquer quelle méthode choisir ? Merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
Allegro Posté(e) le 2 décembre 2007 Auteur Partager Posté(e) le 2 décembre 2007 Ah, je crois que je viens de percuter un peu pour launchd ... D'après ce que je comprends, <?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> Bon ça OK, ensuite, <key> ça serait la "catégorie", Label par exemple, <string> serait par exemple le titre en lui-même, ce qui donnerait : <key>Label</key> <string>monTitre</string> C'est ça ? Par contre après, c'est argument que je ne pige pas. Il faut mettre quoi en argument ? C'est obligatoire ? Ou peut-être que je peux juste indiquer le chemin vers le .sh dans <key>ProgramArguments</key>, sans arguments ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
G r i b o u i l l e Posté(e) le 2 décembre 2007 Partager Posté(e) le 2 décembre 2007 Argument si tu n'en a pas à passer à ton script tu peux laisser vide ex : <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd"> <plist version="0.9"> <dict> <key>Description</key> <string>Apache 2 web server</string> <key>OrderPreference</key> <string>Late</string> <key>Provides</key> <array> <string>Web services</string> </array> <key>Uses</key> <array> <string>Network</string> <string>Disks</string> </array> </dict> </plist> Tu créer un dossier dans /Library/StartupItems/Test tu créer un script de lancement nomé Test (très important de garder le même nom que le dossier) du genre #!/bin/bash /usr/sbin/apachectl start et tu ajoutes le .plist en incluant un requires networks et disks. Au final tu as un dossier avec script + description. Si tu veux faire du simple voilà Après launchd est super puissant et on peux aller très loin avec :) Oublie pas de configurer l'utilisateur d'Apache2 pour ne pas qu'il tourne en root. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Allegro Posté(e) le 3 décembre 2007 Auteur Partager Posté(e) le 3 décembre 2007 Yo Gribouille ! Merci beaucoup pour ton aide . Je m'y mets ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Allegro Posté(e) le 4 décembre 2007 Auteur Partager Posté(e) le 4 décembre 2007 Alors, ta méthode marche très bien , et pour m'amuser j'ai expérimenté en rédigeant uniquement le .plist, de la façon suivante (je suis un utilisateur standard, pas admin) : (--> = explications) <?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> --> On va donner un titre <string>LanceApache2</string> --> Titre <key>ProgramArguments</key> --> On va donner le code à éxécuter <array> --> Données multiples <string>sudo</string> <string>/usr/local/apache2/bin/apachectl</string> <string>start</string> -- > code (ici sur 3 lignes) </array> <key>RunAtLoad</key> --> On veut lancer l'éxécution du code au démarrage <true/> --> oui </dict> </plist> A mon avis, à la place des 3 string dans <array>, on peut en faire 1 seul : <string>sudo /usr/local/apache2/bin/apachectl start</string> D'après ce que j'ai compris, <key> correspond à une "catégorie", dont la valeur est donnée juste en dessous par <string> s'il s'agit d'une phrase, <true/> (ou <false/>) si boolean ... RunAtLoad permet de lancer l'éxécution du code au démarrage. J'ai placé le .plist dans le dossier /Library/LaunchAgents de mon répertoire personnel. Mais on peut apparemment le placer ailleurs. Avec cette méthode, je n'ai pas de script additionnel. Gribouille, je te laisse le soin de corriger mon post (sympa hein , après tout c'est toi le spécialiste ! ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
G r i b o u i l l e Posté(e) le 4 décembre 2007 Partager Posté(e) le 4 décembre 2007 Hum, il faudrait que je test ça. Je regarde dans la doc Apple demain, là pas trop le temps ^^ edit: par contre je doute que tu définisses le nom du daemon à lancer par la variable ProgramArguments. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Allegro Posté(e) le 5 décembre 2007 Auteur Partager Posté(e) le 5 décembre 2007 Après test, mettre tout le code dans 1 string ne fonctionne pas. Il faut au moins mettre sudo dans une string. De toute façon, s'il y a plusieurs lignes de code à éxécuter, il vaut mieux utiliser un script séparé. Lien vers le commentaire Partager sur d’autres sites More sharing options...
guymauve Posté(e) le 5 décembre 2007 Partager Posté(e) le 5 décembre 2007 Et ça sert à quoi Launchd ? C'est le fichier de démarrage de MacOSx ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Allegro Posté(e) le 5 décembre 2007 Auteur Partager Posté(e) le 5 décembre 2007 Ca sert à lancer du code au démarrage. Je crois que cela peut aussi servir à faire des lancements programmés. On peut lancer des .sh, des .scpt ... Pour ce dernier d'ailleurs, j'ai l'impression qu'il faut utiliser osascript, sinon ça ne marche pas. Un exemple que j'ai testé : <?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>MonAppleScript</string> <key>ProgramArguments</key> <array> <string>osascript</string> <string>/Users/Allegro/Library/LaunchAgents/monAppleScript.scpt</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist> Lien vers le commentaire Partager sur d’autres sites More sharing options...
G r i b o u i l l e Posté(e) le 5 décembre 2007 Partager Posté(e) le 5 décembre 2007 Je le définirais un peu comme ça : Launchd c'est un daemon qui régi lancements et messages entre services en fonctions de divers paramètres. Par exemple, avec un .plist on peux créer un agent/service de messagerie et le faire intéragir avec le système suivant divers évènements (se lancer quand le réseau est opérationel, lui envoyer un message si il y'a perte du réseau et en profiter pour qu'il puisse faire tourner les logs, etc.). Autre exemple, quand tu branches une clef USB (pour le coup ça sera pas lui mais ça aurait pu) et bien il pourait s'occuper de monter le volume en recevant un message d'un agent qui surveille /dev, etc. En deux mot : C'est une sorte de xinetd/inetd modifié pour coller au principes de fonctionnement Apple. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Allegro Posté(e) le 5 décembre 2007 Auteur Partager Posté(e) le 5 décembre 2007 Donc il réagit aux évènements système ... c'est super puissant alors ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
G r i b o u i l l e Posté(e) le 5 décembre 2007 Partager Posté(e) le 5 décembre 2007 Grave Lien vers le commentaire Partager sur d’autres sites More sharing options...
Allegro Posté(e) le 5 décembre 2007 Auteur Partager Posté(e) le 5 décembre 2007 Excellent ce smiley Lien vers le commentaire Partager sur d’autres sites More sharing options...
Quarky Posté(e) le 28 décembre 2007 Partager Posté(e) le 28 décembre 2007 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Allegro Posté(e) le 29 décembre 2007 Auteur Partager Posté(e) le 29 décembre 2007 Oki. Désolé pour l'oubli ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.