<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>http://blaireaulinux.fr//wiki/index.php?action=history&amp;feed=atom&amp;title=Services_-_Solaris</id>
	<title>Services - Solaris - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="http://blaireaulinux.fr//wiki/index.php?action=history&amp;feed=atom&amp;title=Services_-_Solaris"/>
	<link rel="alternate" type="text/html" href="http://blaireaulinux.fr//wiki/index.php?title=Services_-_Solaris&amp;action=history"/>
	<updated>2026-05-28T02:01:59Z</updated>
	<subtitle>Historique des révisions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.37.0</generator>
	<entry>
		<id>http://blaireaulinux.fr//wiki/index.php?title=Services_-_Solaris&amp;diff=63&amp;oldid=prev</id>
		<title>AdminWiki : Page créée avec « Category:solaris  =Solaris 8 et 9=  Les services sous Solaris 8 et 9 sont des services classiques de type System V. C&#039;est-à-dire qu’ils sont dans &#039;&#039;&#039;/etc/init.d/&#039;&#039;&#039;... »</title>
		<link rel="alternate" type="text/html" href="http://blaireaulinux.fr//wiki/index.php?title=Services_-_Solaris&amp;diff=63&amp;oldid=prev"/>
		<updated>2013-09-16T13:47:19Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « &lt;a href=&quot;/wiki/index.php?title=Cat%C3%A9gorie:Solaris&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Catégorie:Solaris (page inexistante)&quot;&gt;Category:solaris&lt;/a&gt;  =Solaris 8 et 9=  Les services sous Solaris 8 et 9 sont des services classiques de type System V. C&amp;#039;est-à-dire qu’ils sont dans &amp;#039;&amp;#039;&amp;#039;/etc/init.d/&amp;#039;&amp;#039;&amp;#039;... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:solaris]]&lt;br /&gt;
&lt;br /&gt;
=Solaris 8 et 9=&lt;br /&gt;
&lt;br /&gt;
Les services sous Solaris 8 et 9 sont des services classiques de type System V. C&amp;#039;est-à-dire qu’ils sont dans &amp;#039;&amp;#039;&amp;#039;/etc/init.d/&amp;#039;&amp;#039;&amp;#039; et sont appelés depuis &amp;#039;&amp;#039;&amp;#039;/etc/rc&amp;lt;niveau-de-runlevel&amp;gt;.d/&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Attention, petite particularité : les scripts dans &amp;#039;&amp;#039;&amp;#039;/etc/rc&amp;lt;niveau-de-runlevel&amp;gt;.d/&amp;#039;&amp;#039;&amp;#039; ne sont pas des liens symboliques vers &amp;#039;&amp;#039;&amp;#039;/etc/init.d/&amp;#039;&amp;#039;&amp;#039;, mais des liens physiques.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=Solaris 10=&lt;br /&gt;
&lt;br /&gt;
==Principe==&lt;br /&gt;
&lt;br /&gt;
Sous Solaris 10, les services ont été entièrement revus. On fonctionne toujours en système V, avec des runlevels, mais le fonctionnement a été entièrement revu. Cependant, l’ancienne syntaxe reste possible à utiliser, pour garder la compatibilité. Le principal avantage de la nouvelle méthode est que les services ne sont plus lancés les uns après les autres, mais tous en parallèle, ce qui est beaucoup plus rapide sur les processeurs multithread actuels. Pour que l’ensemble reste cohérant, il a été ajouté une notion de dépendance entre les services : ils démarrent tous en même temps, mais certains ne poursuivront leur démarrage que si tel ou tel autre a fini de démarrer. Par exemple, ssh ne finira de se lancer que quand le réseau sera prêt.&lt;br /&gt;
&lt;br /&gt;
Pour simplifier les dépendances (un service peut dépendre de beaucoup d&amp;#039;autres), il existe des milestones qui correspondent aux grandes étapes du démarrage (par exemple : single-user, network, multi-user). Pour voir tous les milestones existants, taper &amp;#039;&amp;#039;&amp;#039;svcs –a|grep milestone&amp;#039;&amp;#039;&amp;#039;. Les milestones se comportent comme des services normaux (mêmes commandes).&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Les commandes==&lt;br /&gt;
&lt;br /&gt;
* Informations : &amp;#039;&amp;#039;&amp;#039;svcs&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Administration : &amp;#039;&amp;#039;&amp;#039;svcadm&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Configuration : &amp;#039;&amp;#039;&amp;#039;svccfg&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Détails : &amp;#039;&amp;#039;&amp;#039;svcprop&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exemples :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Afficher l’état de tous les services :&lt;br /&gt;
&lt;br /&gt;
 # svcs -a&lt;br /&gt;
 STATE          STIME    FMRI&lt;br /&gt;
 legacy_run     Jul_01   lrc:/etc/rc2_d/S10lu&lt;br /&gt;
 legacy_run     Jul_01   lrc:/etc/rc2_d/S20sysetup&lt;br /&gt;
 legacy_run     Jul_01   lrc:/etc/rc2_d/S40llc2&lt;br /&gt;
 legacy_run     Jul_01   lrc:/etc/rc2_d/S42ncakmod&lt;br /&gt;
 legacy_run     Jul_01   lrc:/etc/rc2_d/S47pppd&lt;br /&gt;
 […]&lt;br /&gt;
&lt;br /&gt;
Afficher l’état d’un service en particulier (on peut mettre juste &amp;quot;ssh&amp;quot; ou &amp;quot;svc:/network/ssh:default&amp;quot; ou un morceau de tout ça :&lt;br /&gt;
&lt;br /&gt;
 # svcs ssh&lt;br /&gt;
 STATE          STIME    FMRI&lt;br /&gt;
 online         juil_01  svc:/network/ssh:default&lt;br /&gt;
&lt;br /&gt;
Activer / désactiver / relancer / relire le fichier de conf :&lt;br /&gt;
&lt;br /&gt;
 svcadm enable ssh&lt;br /&gt;
 svcadm disable ssh&lt;br /&gt;
 svcadm restart ssh&lt;br /&gt;
 svcadm refresh ssh&lt;br /&gt;
&lt;br /&gt;
(restart et refresh ne marchent pas avec tous les services)&lt;br /&gt;
&lt;br /&gt;
Voir les services qui dépendent d&amp;#039;un service :&lt;br /&gt;
&lt;br /&gt;
 svcs –D ssh&lt;br /&gt;
&lt;br /&gt;
Voir les services dont dépend un service :&lt;br /&gt;
&lt;br /&gt;
 svcs –d ssh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Les fichiers de configuration==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* XML : &amp;#039;&amp;#039;&amp;#039;/var/svc/manifest/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Logs : &amp;#039;&amp;#039;&amp;#039;/var/svc/log/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Config : &amp;#039;&amp;#039;&amp;#039;/etc/svc/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Scripts : &amp;#039;&amp;#039;&amp;#039;/lib/svc/manifest/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Dépannage==&lt;br /&gt;
&lt;br /&gt;
On peut tuer un service avec une la commande suivante :&lt;br /&gt;
&lt;br /&gt;
 pkill -9 cron&lt;br /&gt;
 svcs –p cron&lt;br /&gt;
&lt;br /&gt;
Un service qui est tué se relance tout seul, mais au bout de plusieurs relances infructueuses, le service passe en mode maintenance. On peut s&amp;#039;amuser à forcer un service à passer en mode maintenance en faisant une boucle qui le tue plusieurs fois de suite.&lt;br /&gt;
&lt;br /&gt;
Pour avoir plus d&amp;#039;informations sur la raison du plantage, on utilise &amp;#039;&amp;#039;&amp;#039;&amp;quot;svcs –xv &amp;lt;service&amp;gt;&amp;quot;&amp;#039;&amp;#039;&amp;#039; qui donne le chemin vers les logs.&lt;br /&gt;
&lt;br /&gt;
Exemple de plantage volontaire + relance du service ssh (à ne pas faire si on est connecté en ssh !) :&lt;br /&gt;
&lt;br /&gt;
 # svcs ssh&lt;br /&gt;
 STATE          STIME    FMRI&lt;br /&gt;
 online         14:43:35 svc:/network/ssh:default&lt;br /&gt;
 # while true; do pkill -9 ssh; done&lt;br /&gt;
 ^C&lt;br /&gt;
 # svcs ssh&lt;br /&gt;
 STATE          STIME    FMRI&lt;br /&gt;
 maintenance    14:44:00 svc:/network/ssh:default&lt;br /&gt;
 # &lt;br /&gt;
 # &lt;br /&gt;
 # svcs -xv ssh&lt;br /&gt;
 svc:/network/ssh:default (SSH server)&lt;br /&gt;
  State: maintenance since Fri Nov 05 14:44:00 2010&lt;br /&gt;
 Reason: Restarting too quickly.&lt;br /&gt;
  See: http://sun.com/msg/SMF-8000-L5&lt;br /&gt;
  See: man -M /usr/share/man -s 1M sshd&lt;br /&gt;
  See: /var/svc/log/network-ssh:default.log&lt;br /&gt;
 Impact: This service is not running.&lt;br /&gt;
 # &lt;br /&gt;
 # &lt;br /&gt;
 # svcadm disable ssh&lt;br /&gt;
 # svcadm enable ssh&lt;br /&gt;
 # &lt;br /&gt;
 # svcs ssh&lt;br /&gt;
 STATE          STIME    FMRI&lt;br /&gt;
 online         14:44:40 svc:/network/ssh:default&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Création d&amp;#039;un nouveau service==&lt;br /&gt;
&lt;br /&gt;
===Écrire un script===&lt;br /&gt;
&lt;br /&gt;
 # vi /lib/svc/method/mon_script&lt;br /&gt;
 &lt;br /&gt;
 ==&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 touch /var/tmp/start`date`&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 touch /var/tmp/stop`date`&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
===Écrire un manifest XML===&lt;br /&gt;
&lt;br /&gt;
 # cd /var/svc/manifest&lt;br /&gt;
 # cp system/coreadm.xml site/mon_script.xml&lt;br /&gt;
 # vi site/mon_script.xml&lt;br /&gt;
&lt;br /&gt;
Adapter les lignes suivantes (sans toucher au reste) :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;service_bundle … name=&amp;quot;PACK:mon_script&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;site/mon_script&amp;quot;&amp;gt;        &amp;#039;&amp;#039;=&amp;gt; va créer svc:/site/mon_script:default&amp;#039;&amp;#039;&lt;br /&gt;
  &amp;lt;dependency value=&amp;#039;svc:/milestone/multi-user-server:default&amp;#039;&amp;gt;&lt;br /&gt;
  &amp;lt;exec_method&lt;br /&gt;
  start exec=&amp;quot;/lib/svc/method/mon_script start&amp;quot;&lt;br /&gt;
  stop exec=&amp;quot;/lib/svc/method/mon_script stop&amp;quot;&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attention :&amp;#039;&amp;#039;&amp;#039; la syntaxe de la balise &amp;quot;dependency&amp;quot; varie suivant les versions !&lt;br /&gt;
&lt;br /&gt;
Dans les premières versions de Solaris 10, elle ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;dependency value=&amp;#039;svc:/milestone/multi-user-server:default&amp;#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans les versions plus récentes il faut plus d&amp;#039;informations :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;dependency&lt;br /&gt;
         name=&amp;#039;ma_dependance&amp;#039;&lt;br /&gt;
         grouping=&amp;#039;require_all&amp;#039;&lt;br /&gt;
         restart_on=&amp;#039;none&amp;#039;&lt;br /&gt;
         type=&amp;#039;service&amp;#039;&amp;gt;&lt;br /&gt;
         &amp;lt;service_fmri value=&amp;#039;svc:/milestone/multi-user-server:default&amp;#039; /&amp;gt;&lt;br /&gt;
 &amp;lt;/dependency&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Vérifier la validité du fichier XML===&lt;br /&gt;
&lt;br /&gt;
 # svccfg –v validate /var/svc/manifest/site/mon_script.xml&lt;br /&gt;
&lt;br /&gt;
Si tout va bien, il n&amp;#039;affiche rien.&lt;br /&gt;
&lt;br /&gt;
S&amp;#039;il ne parvient même pas à effectuer la validation :&lt;br /&gt;
&lt;br /&gt;
 # xmllint –valid /var/svc/manifest/site/mon_script.xml&lt;br /&gt;
&lt;br /&gt;
===Injecter le manifest dans le repository===&lt;br /&gt;
&lt;br /&gt;
 # svccfg import /var/svc/manifest/site/mon_script.xml&lt;br /&gt;
&lt;br /&gt;
(pour supprimer c&amp;#039;est &amp;quot;svccfg delete /var/svc/manifest/ site/mon_script.xml&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===Utilisation===&lt;br /&gt;
&lt;br /&gt;
 # svcadm enable mon_script&lt;br /&gt;
 # svcadm disable mon_script&lt;br /&gt;
 # svcadm enable mon_script&lt;br /&gt;
&lt;br /&gt;
Si on modifie le script, il faut refaire un &amp;quot;&amp;#039;&amp;#039;&amp;#039;import&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On fait un premier &amp;#039;&amp;#039;&amp;#039;enable&amp;#039;&amp;#039;&amp;#039; pour vérifier que ça démarre bien (attention, ça lance le start du daemon, donc il ne faut pas que le process ait été lancé à la main avant, sinon ça risque de poser problème !).&lt;br /&gt;
&lt;br /&gt;
Ensuite on fait un &amp;quot;disable&amp;quot; pour valider que le stop fonctionne.&lt;br /&gt;
&lt;br /&gt;
Puis on le redémarre si on veut qu&amp;#039;il soit actif.&lt;/div&gt;</summary>
		<author><name>AdminWiki</name></author>
	</entry>
</feed>