Bonjour à tous
Aujourd'hui, ayant enfin réussi à me débarrasser d'une application importune qui se lançait automatiquement, je m'suis dit que je pourrais faire un petit résumé de la situation, sur Tiger, du moins. Vu le nombre de fils sur cette question, celui-ci sera peut-être utile.
Bien évidemment, les applications qui "se lancent toutes seules" sont lancées par quelque chose ... mais il reste à savoir ce qu'est ce quelque chose. D'où ce petit recensement. Pour ceux qui veulent aller à l'essentiel, passer au III.
I. Mini-description
I.a) les services [niveau système / niveau global / niveau user]
Les services (souvent des daemons) sont en général lancés par le système au démarrage d'icelui, ou non lancés si telle est la configuration.
Ils permettent au système de fournir des fonctionnalités à ses utilisateurs telles que : réseau, web, ftp, bases de données, gestion de périphériques etc.
Ces services peuvent être installés par Apple ou par un tiers. Par exemple lorsqu'on installe une base de données, on installe un service.
Apple propose pour gérer les services plusieurs techniques différentes : celle de SystemStarter et celle de launchd (pas besoin de parler davantage du vieux rc).
I.b) les applications
En général les applications lancées automatiquement le sont lors du login. Éventuellement, elles peuvent être lancées par un service lorsqu'il est sollicité mais c'est suffisamment moche pour ne pas le voir souvent.
II. Où les chercher ?
II.a) Services
II.a.1) SystemStarter
Les services gérés par SystemStarter se trouvent dans les dossiers suivants :
/Library/StartupItems
/System/Library/StartupItems
Pour un certain nombre d'entre eux, le lancement de ces services est
déterminé par une entrée dans le fichier /etc/hostconfig.
II.a.2) launchd
Les services gérés par launchd se trouvent dans les répertoires suivants :
/Library/LaunchDaemons/
/Library/LaunchAgents/
/System/Library/LaunchDaemons/
/System/Library/LaunchAgents/
~/Library/LaunchDaemons/
~/Library/LaunchAgents/
Ils sont rangés suivant les critères suivants :
Si l'on veut qu'un service soit actif uniquement lorsque l'utilisateur Renart se logge, il faut le définir dans ~Renart/library/LaunchDaemons.
NB : à cette heure, je ne vois pas l'intérêt de ~/Library/LaunchAgents
II.b) Applications
Les applications qui se lancent à l'ouverture de session sont définies dans le panneau de préférence, rubrique Comptes, onglet Login Items (je ne connais pas le libellé français). On les retrouve définies dans le fichier de préférences ~/Library/Preferences/loginwindow.plist.
Mais ... attention ! On peut aussi en définir dans
/Library/Preferences/loginwindow.plist. Elles se lanceront alors pour tout utilisateur qui se logge. En mode graphique je ne sais pas où on les manipule.
III. Manip's
Note liminaire : il va de soi, mais je le répète, que toute manipulation doit être précédée de la sauvegarde qui convient (du système, du dossier, des fichiers, de ce que l'on voudra, mais surtout de ce qu'il faudra !!!)
III.a) Services
III.a.1) SystemStarter
Pour activer/désactiver un tel service, consulter le fichier /etc/hostconfig.
Par exemple : pour activer Apple Remote Desktop, on ajoute (ou modifie) dans le fichier /etc/hostconfig la ligne
Au prochain démarrage, le service, défini dans /System/Library/StartupItems/RemoteDesktopAgent démarrera.
Pour n'agir que temporairement, on peut utiliser la commande (Terminal )
SystemStarter directement. Pour activer Apple Remote Desktop, cela
donnerait :
Dans ce cas précis, cela s'active aussi via le panneau des Préférences,
onglet "Partage".
III.a.2) launchd
Pour activer/désactiver, arrêter/lancer un service, il faut utiliser la commande launchctl. Cela se manipule avec précaution.
Un exemple : gestion du daemon de messagerie Postfix.
Pour plus de renseignement, voir le manuel de la commande.
III.b) Applications
Pour la grande majorité des cas, ces applications peuvent être enlevées/ajoutées directement depuis le panneau des préférences, comme indiqué ci-dessus.
Mais pour celles définies dans /Library/Preferences/loginwindow.plist, il faut utiliser l'éditeur de fichier de préférence livré avec les outils de développement. Ou, si on ne les a pas installés, utiliser les outils du Terminal. En effet, les fichiers de préférences ne sont par défaut plus dans un format éditable. Aussi faut-il les convertir au format texte avant que de les tripoter.
Pour transformer un fichier de préférences au format texte (XML), par exemple celui de GeekTool :
Pour le remettre au format binaire (pas nécessaire) :
Dans le cas qui nous occupe, le fichier /Library/Preferences/loginwindow.plist, les entrées sont encadrées de
et il faut donc ôter l'entrée que l'on veut en supprimant bien les balises et ce qui se trouve entre elles.
Après s'être déloggé puis reloggé, l'application ne devrait alors plus être lancée.
Voili. Encore une fois : soyez prudents dans les manipulations.
B.
Aujourd'hui, ayant enfin réussi à me débarrasser d'une application importune qui se lançait automatiquement, je m'suis dit que je pourrais faire un petit résumé de la situation, sur Tiger, du moins. Vu le nombre de fils sur cette question, celui-ci sera peut-être utile.
Bien évidemment, les applications qui "se lancent toutes seules" sont lancées par quelque chose ... mais il reste à savoir ce qu'est ce quelque chose. D'où ce petit recensement. Pour ceux qui veulent aller à l'essentiel, passer au III.
I. Mini-description
I.a) les services [niveau système / niveau global / niveau user]
Les services (souvent des daemons) sont en général lancés par le système au démarrage d'icelui, ou non lancés si telle est la configuration.
Ils permettent au système de fournir des fonctionnalités à ses utilisateurs telles que : réseau, web, ftp, bases de données, gestion de périphériques etc.
Ces services peuvent être installés par Apple ou par un tiers. Par exemple lorsqu'on installe une base de données, on installe un service.
Apple propose pour gérer les services plusieurs techniques différentes : celle de SystemStarter et celle de launchd (pas besoin de parler davantage du vieux rc).
- SystemStarter n'est officiellement plus le lanceur officiel depuis Tiger mais il est toujours présent dans le système et est encore largement utilisé tant par Apple que par d'autres.
- launchd est normalement l'outil à utiliser, en dépit de quelques limitations dommageables (pas de gestion de hiérarchie ou d'interdépendence entre les services)
I.b) les applications
En général les applications lancées automatiquement le sont lors du login. Éventuellement, elles peuvent être lancées par un service lorsqu'il est sollicité mais c'est suffisamment moche pour ne pas le voir souvent.
II. Où les chercher ?
II.a) Services
II.a.1) SystemStarter
Les services gérés par SystemStarter se trouvent dans les dossiers suivants :
/Library/StartupItems
/System/Library/StartupItems
Pour un certain nombre d'entre eux, le lancement de ces services est
déterminé par une entrée dans le fichier /etc/hostconfig.
II.a.2) launchd
Les services gérés par launchd se trouvent dans les répertoires suivants :
/Library/LaunchDaemons/
/Library/LaunchAgents/
/System/Library/LaunchDaemons/
/System/Library/LaunchAgents/
~/Library/LaunchDaemons/
~/Library/LaunchAgents/
Ils sont rangés suivant les critères suivants :
- Les services définis dans /Library et /System/Library sont généraux : ils concernent l'ensemble du système.
- Ceux définis dans /System/Library sont ceux fournis avec Mac OS X et il convient de n'y rien ajouter.
- Ceux définis dans ~/Library le sont pour le compte utilisateur concerné.
Si l'on veut qu'un service soit actif uniquement lorsque l'utilisateur Renart se logge, il faut le définir dans ~Renart/library/LaunchDaemons.
NB : à cette heure, je ne vois pas l'intérêt de ~/Library/LaunchAgents
II.b) Applications
Les applications qui se lancent à l'ouverture de session sont définies dans le panneau de préférence, rubrique Comptes, onglet Login Items (je ne connais pas le libellé français). On les retrouve définies dans le fichier de préférences ~/Library/Preferences/loginwindow.plist.
Mais ... attention ! On peut aussi en définir dans
/Library/Preferences/loginwindow.plist. Elles se lanceront alors pour tout utilisateur qui se logge. En mode graphique je ne sais pas où on les manipule.
III. Manip's
Note liminaire : il va de soi, mais je le répète, que toute manipulation doit être précédée de la sauvegarde qui convient (du système, du dossier, des fichiers, de ce que l'on voudra, mais surtout de ce qu'il faudra !!!)
III.a) Services
III.a.1) SystemStarter
Pour activer/désactiver un tel service, consulter le fichier /etc/hostconfig.
Par exemple : pour activer Apple Remote Desktop, on ajoute (ou modifie) dans le fichier /etc/hostconfig la ligne
Bloc de code:
ARDAGENT=-YES-
Pour n'agir que temporairement, on peut utiliser la commande (Terminal )
SystemStarter directement. Pour activer Apple Remote Desktop, cela
donnerait :
Bloc de code:
sudo SystemStarter start RemoteDesktopAgent
onglet "Partage".
III.a.2) launchd
Pour activer/désactiver, arrêter/lancer un service, il faut utiliser la commande launchctl. Cela se manipule avec précaution.
Un exemple : gestion du daemon de messagerie Postfix.
- pour l'arrêter :
Bloc de code:
sudo launchctl stop org.postfix.master
- pour le lancer :
Bloc de code:
sudo launchctl start org.postfix.master
- pour le désactiver :
Bloc de code:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.postfix.master.plist
- pour l'activer :
Bloc de code:
sudo launchctl load -w /System/Library/LaunchDaemons/org.postfix.master.plist
Pour plus de renseignement, voir le manuel de la commande.
III.b) Applications
Pour la grande majorité des cas, ces applications peuvent être enlevées/ajoutées directement depuis le panneau des préférences, comme indiqué ci-dessus.
Mais pour celles définies dans /Library/Preferences/loginwindow.plist, il faut utiliser l'éditeur de fichier de préférence livré avec les outils de développement. Ou, si on ne les a pas installés, utiliser les outils du Terminal. En effet, les fichiers de préférences ne sont par défaut plus dans un format éditable. Aussi faut-il les convertir au format texte avant que de les tripoter.
Pour transformer un fichier de préférences au format texte (XML), par exemple celui de GeekTool :
Bloc de code:
plutil -convert xml1 org.tynsoe.geektool.plist
Bloc de code:
plutil -convert binary1 org.tynsoe.geektool.plist
Bloc de code:
<dict>
...
</dict>
Après s'être déloggé puis reloggé, l'application ne devrait alors plus être lancée.
Voili. Encore une fois : soyez prudents dans les manipulations.
B.