# Script Shell au démarrage



## Daddy98 (31 Mai 2010)

Bonjour, je souhaiterais lancer automatiquement un script shell au démarrage de mon mac, si possible, avant l'ouverture de session.

Je ne parviens pas a lancer ce script via le dossier /Library/StratupItems/.
Je ne parviens pas non plus a le lancer le script via, le menu Ouverture dans les Préférences Système : ça m'ouvre Xcode au démarrage 


Comment puis-je faire ?


Merci par avance !


----------



## PA5CAL (31 Mai 2010)

Bonjour

Ton script doit avoir des droits d'exécution (faire « chmod +x _fichier_de_script_ » avant de l'utiliser).

Il faut éviter de lui laisser une extension qui provoquerait son ouverture par défaut dans une application. En l'absence d'extension, le type du fichier qui doit apparaître dans Finder est "Fichier exécutable Unix", ou quelque chose dans le genre.

En principe, l'entête du script doit également rappeler quel shell utiliser pour son exécution.


----------



## Daddy98 (31 Mai 2010)

Merci PA5CAL.

C'est aussi simple que sa? -> plus d'extension et un chmod a 755. 

Un fichier Shell avec un extension .sh est juste éditable ?

Et maintenant il faut que je re-test le dossier /Library/StratupItems

Et puis-je créer un Package d'installation pour distribuer mon script ? si oui, avec quel logiciel ? 

PackageMaker est un peu hostile 

Merci

---------- Nouveau message ajouté à 14h25 ---------- Le message précédent a été envoyé à 12h50 ----------

Sa a l'air de marcher, mais pas encore tout bien !

Au démarrage du Mac, un message s'affiche m'indiquant qu'un élément du dossier StartupItems n'a pas été exécuté car les autorisation de dossier son invalides.
J'ai comparé par rapport au autres, les autorisation sont :
-wheel : Lecture seulement
-système : Lecture et écriture 
-everyone : Lecture seulement

Sur le dossier que j'ai créer, je suis le propriétaire et je ne peut pas me supprimer des utilisateurs. 
Je ne peut pas rajouter non plus l'utilisateur : système



Quelqu'un a une idée ?

Merci


----------



## PA5CAL (31 Mai 2010)

/Library/StartupItems/ est un dossier système particulier.

Apple précise clairement à propos des fichiers placés dans ce dossier :


> Directories and executable files should have permissions of "0755," with the owner set to "root" and group set to "wheel." Other (non-executable) files should have permissions of "0644," with the owner set to "root" and group set to "wheel."


----------



## Daddy98 (31 Mai 2010)

Faut-il indiquer le 0 a 0755 ?

Et comment le 'set to root' ?

J'ai lu aussi la doc qui est fournie avec le message d'erreur.


----------



## PA5CAL (31 Mai 2010)

Daddy98 a dit:


> Faut-il indiquer le 0 a 0755 ?


Non. Le 0 indique seulement une valeur en octal.



Daddy98 a dit:


> Et comment le 'set to root' ?.


Pour changer le propriétaire à root et le groupe à wheel, la commande est :
	
	



```
[COLOR="DarkRed"]sudo chown [COLOR="DarkOrchid"]root[/COLOR]:[COLOR="RoyalBlue"]wheel[/COLOR][/COLOR] [I][COLOR="DimGray"]fichier_à_traiter[/COLOR][/I]
```
(le mot de passe administrateur est demandé).


----------



## Daddy98 (31 Mai 2010)

Merci PA5CAL !

J'avais trouvé cette commande aussi. Le message a propos de sécurité n'apparaît plus. Mais le script ne semble pas s'exécuter quand même.

Je suis aller dans la doc Apple, je n'ai pas tout compris.

J'ai imaginé une technique qui consisterais a mettre le script dans un dossier du type 'Application Support'. puis insérer le script dans la liste de démarrage.
Mais comment le faire automatiquement par un installateur ?

Merci encore !! 

---------- Nouveau message ajouté à 17h17 ---------- Le message précédent a été envoyé à 16h56 ----------

Zut ! Ma technique ne pourrais pas marcher, car bien que le script soit rendu exécutable.
Un terminal va s'ouvrir alors que je voudrais que mon script s'exécute en silence.
Et si on oublie le silence, se script serra sans fin tant que l'ordinateur tourne donc ... c'est pas possible.


----------



## Daddy98 (12 Juin 2010)

Bonsoir.


J'ai un nouveau problème, après avoir developé tout le site, je viens de m'apercevoir que le package d'installation ne fonctionne pas.

Il me copie les fichiers au bon endroit, mais avec les mauvaises autorisation. J'ai utilisé PackageMaker, dans les options de fichier et d'autorisation les infos semblent bonnes 



Quelqu'un a une idée ?

Merci d'avance.

Daddy


----------



## tatouille (13 Juin 2010)

tu dois preciser l'utilisateur root, relie l'aide de packageMaker avec plus d'attention et la reponse te tombera sous les yeux.


----------



## Fingah (23 Juin 2010)

launchd devrait te simplifier la tâche pour lancer des scripts au démarrage (une sorte de cron en plus puissant)


----------



## Daddy98 (27 Juin 2010)

Oui Launchd le fait très bien, mais je peut pas utiliser le même technique que le concurant, je risque d'avoir un problème 

Sinon, a force de tests j'ai fini pas trouver, dans PackageMaker il faut re-définir les autorisations des fichiers dans l'ordinateur qui lance le paquet, mais ce n'est pas évidant tous de même.

Le programme est terminé, même en ligne, merci a tous de votre aide !


----------



## PA5CAL (27 Juin 2010)

Daddy98 a dit:


> Oui Launchd le fait très bien, mais je peut pas utiliser le même technique que le concurant, je risque d'avoir un problème


Je ne vois pas où est le problème.

Il s'agit d'un mécanisme standard fourni par Apple, qui ne concerne en rien la propriété intellectuelle des tierces parties, et notamment de tes concurrents. Tout le monde a le droit de l'utiliser sans avoir de compte à rendre à quiconque.


----------

