Svcs Maintenance et SMF Solaris : le guide de dépannage complet

Un service Solaris bloqué en état maintenance ne produit pas toujours un message d’erreur explicite. La commande svcs signale le problème, mais identifier la cause racine demande de croiser plusieurs outils : logs SMF, dépendances, propriétés de configuration. Cet article détaille une méthode de diagnostic structurée pour les services SMF sur Solaris, en intégrant les enjeux de conformité apparus avec Solaris 11.4.

SMF et conformité sur Solaris 11.4 : un service en maintenance devient un écart de sécurité

Sur les versions antérieures de Solaris, un service en état maintenance relevait de l’exploitation pure. L’administrateur corrigeait le problème, relançait le service, et passait à autre chose.

Solaris 11.4 change la donne. Un service de journalisation système ou de sécurité réseau (pare-feu, IPsec) laissé en état maintenance ou disabled est désormais considéré comme un cas de non-conformité, pas seulement comme un incident technique. Le framework de conformité natif de Solaris 11.4 s’appuie directement sur l’état des services SMF pour évaluer la posture de sécurité du système.

Une instance SMF dédiée orchestre ce mécanisme : svc:/application/security/compliance:default, livrée offline par défaut. Sa configuration passe par svccfg pour les propriétés scheduled/interval, scheduled/day et scheduled/hour. Si cette instance tombe elle-même en maintenance, les exécutions planifiées de conformité cessent silencieusement.

Ingénieure réseau consultant une checklist de maintenance SMF Solaris devant un rack de serveurs dans un centre de données

Ce double risque (service métier en panne + perte de visibilité conformité) justifie une surveillance renforcée avec svcs -xv combinée à svccfg listprop scheduled pour vérifier que les exécutions produisent bien des résultats récents.

Commandes svcs pour le diagnostic SMF : tableau comparatif

La commande svcs accepte plusieurs options dont l’utilité varie selon le stade du diagnostic. Le tableau ci-dessous classe les combinaisons les plus utiles par ordre de priorité lors d’un dépannage.

Commande Ce qu’elle affiche Quand l’utiliser
svcs -xv Services en erreur avec motif, impact sur les dépendants, lien vers la documentation Premier réflexe face à un service en maintenance
svcs -lp FMRI État détaillé, PID, contrat, manifestes, dépendances avec leur état Après svcs -xv, pour inspecter un service précis
svcs -d FMRI Liste des services dont dépend l’instance Quand le motif pointe vers une dépendance non satisfaite
svcs -D FMRI Liste des services qui dépendent de l’instance Pour mesurer l’impact avant intervention
svcs -a Tous les services, y compris disabled Inventaire global ou recherche d’un FMRI

La distinction entre -d (dépendances amont) et -D (dépendants aval) est la source d’erreur la plus fréquente. Confondre les deux revient à chercher la cause dans les conséquences.

Lecture du log SMF : localiser la cause racine d’un état maintenance

svcs -xv indique le chemin du fichier log du service, généralement sous /var/svc/log/. Ce fichier contient les sorties standard et erreur du script de démarrage, horodatées.

Trois catégories de causes dominent dans les logs SMF :

  • Erreur de configuration du service : fichier de configuration absent, syntaxe invalide, permission incorrecte sur un fichier référencé par le manifeste. Le log affiche typiquement un message du script start avec un code retour non nul.
  • Dépendance non satisfaite : le service requis (require_all ou require_any) est lui-même offline, disabled ou en maintenance. La commande svcs -d FMRI identifie immédiatement le service bloquant.
  • Épuisement du restarter : après plusieurs échecs consécutifs de démarrage, le restarter place le service en maintenance pour éviter une boucle. Corriger la cause sous-jacente ne suffit pas, il faut aussi réinitialiser l’état avec svcadm clear.

Un piège courant : corriger le fichier de configuration puis relancer svcadm enable sans passer par svcadm clear. Le service reste en maintenance parce que le restarter n’a pas reçu le signal de réinitialisation.

Procédure svcadm clear et réactivation d’un service SMF

La séquence de remise en service après correction suit un ordre précis. Inverser les étapes ou en sauter une provoque un retour en maintenance.

  • Identifier la cause avec svcs -xv puis lecture du log sous /var/svc/log/
  • Corriger le problème (fichier de configuration, dépendance, permission)
  • Exécuter svcadm clear FMRI pour réinitialiser l’état maintenance
  • Vérifier avec svcs -xv que le service passe en online
  • Si le service retombe en maintenance, relire le log : la cause initiale n’a pas été entièrement corrigée, ou une seconde erreur apparaît

Vue aérienne d'un bureau de technicien avec un terminal Solaris affichant des commandes SMF et des notes de dépannage manuscrites

Pour les services gérés par le restarter inetd (services réseau démarrés à la demande), la procédure reste identique. En revanche, le log peut se trouver dans le fichier log du restarter inetd lui-même plutôt que dans celui du service.

Cas du référentiel SMF corrompu

Si la base de données du référentiel SMF est corrompue, aucun service ne démarre correctement. Le symptôme typique est un échec massif au boot. La procédure consiste à remplacer le référentiel par sa copie de sauvegarde, stockée automatiquement par le système. Cette opération nécessite un démarrage en mode single-user, sans services SMF actifs.

Surveillance proactive des services SMF : au-delà du dépannage réactif

Le dépannage ponctuel ne couvre qu’une partie du problème. Sur Solaris 11.4, la disparition silencieuse d’une exécution planifiée de conformité passe inaperçue si personne ne vérifie régulièrement l’état de svc:/application/security/compliance:default.

Deux vérifications périodiques réduisent le risque :

  • Exécuter svcs -xv de façon planifiée (cron ou équivalent) et alerter dès qu’un service critique apparaît en maintenance ou degraded
  • Contrôler avec svccfg listprop scheduled que l’instance de conformité produit des résultats dans l’intervalle attendu
  • Surveiller la durée des exécutions de conformité : une exécution qui dépasse sa durée habituelle peut signaler un problème sous-jacent sur le système de fichiers ou les dépendances réseau

Cette approche transforme la gestion SMF d’un outil de dépannage réactif en composante active de la posture de sécurité du système. Un service en maintenance n’est plus un simple ticket d’incident : c’est un écart de conformité mesurable, traçable, et auditable.

Articles en vedette