Benutzer-Werkzeuge

Webseiten-Werkzeuge


solaris_services

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
solaris_services [2012/07/19 22:28] – [Aufbau] christiansolaris_services [2012/07/19 22:50] (aktuell) – [-l] christian
Zeile 1: Zeile 1:
 ======Aufbau====== ======Aufbau======
-  * Seit Solaris 10 - SMF +In Solaris 10 löste die "Service Management Facility" (SMF) die klassischen und angestaubten Initskripte ab. Dadurch ergaben sich zahlreiche Vorteile, wie beispielsweise bessere Abhängigkeitsbildung und wirklich parallelisiertes Starten von Diensten. 
-    * bessere Abhängigskeitsbildung +In einem Fehlerfall werden Dienste neugestartet, sodass Applikationen immer zur Verfügung stehen:
-    * echte Parallelisierung von Diesten +
-    * Dienstweises detailliertes Logging +
-    * bei Fehlerfall automatische Neustarts +
-    * Kompatibel zu bisherigen rc*.d-Skripten +
-  * Definition als "FMRI" - Fault Managed Resource Identifier +
-    * Format: svc:/GRUPPE/dienst:default +
-    * z.B. svc:/network/inetd:default +
-  * Zustände: +
-    * ''uninitialized'' - Dienst unkonfiguriert +
-    * ''disabled'' - deaktivierter Dienst +
-    * ''offline'' - Dienst wartet auf Ereignis +
-    * ''online'' - Dienst aktiv +
-    * ''degraded'' - (teilweise) fehlerhafter Dienst +
-    * ''maintenance'' - Dienst konnte nicht gestartet werden +
-    * ''legacy_run'' - alter init.d-Dienst +
-  * Manifest +
-    * Dienst wird durch Manifest definiert +
-    * Manifest unterhalb von ''/lib/svc/manifest'', z.B. für ''network/inetd'' Manifest unterhalb ''/lib/svc/manifest/network/inetd.xml'' +
-    * Logs unterhalb von ''/var/svc/log'', z.B. für ''network/inetd'' Logs unterhalb von ''/var/svc/log/network-inetd:default.log'' +
-  *  +
- +
-=====Beispiel - automatisch neustartender Dienst=====+
 <code> <code>
 # svcs -p inetd # svcs -p inetd
Zeile 43: Zeile 21:
 [ Jul 19 22:25:29 Method "start" exited with status 0. ] [ Jul 19 22:25:29 Method "start" exited with status 0. ]
 </code> </code>
 +
 +=====Stati=====
 +Alte Initskript-Dienste sind zu SMF kompatibel und können weiterhin verwendet werden. Ersichtlich ist das durch den auffälligen Dienststatus "''legacy_run''". Ein Dienst kann folgende Stati haben:
 +^Status^Bedeutung^
 +|''uninitialized''|Dienst unkonfiguriert|
 +|''disabled''|deaktivierter Dienst|
 +|''offline''|Dienst wartet auf Ereignis|
 +|''online''|Dienst aktiv|
 +|''degraded''|(teilweise) fehlerhafter Dienst|
 +|''maintenance''|Dienst konnte nicht gestartet werden|
 +|''legacy_run''|alter init.d-Dienst|
 +
 +Ein Dienst wird immer im "FMRI"-Format (//Fault Managed Resource Identifier//) angegeben: ''svc:/GRUPPE/dienst:default''
 +z.B. ''svc:/network/inetd:default'' für den Inetd-Superserver.
 +
 +=====Manifest und Logs=====
 +Dienste werden durch ein XML-Manifest unterhalb von ''/lib/svc/manifest'' definiert und pflegen ein eigenes Logfile unterhalb von ''/var/svc/log''.
 +Im Manifest werden beispielsweise definiert:
 +  * Name (''<service>'')
 +  * Standard-Status
 +  * Abhängigkeiten zu anderen Diensten (''<dependency>'')
 +  * Verhalten im Fehlerfall - z.B. abgestürzte Prozesse
 +  * Auszuführende Kommandos für Start/Stop/Refresh (''<exec_method>'')
 +  * Spezielle Dienst-Prozessparameter (sogenannte Properties), wie beispielsweise ''tcp_keepalive'' bei ''inetd'' - Properties stellen __**keine**__ Dienst-Konfiguration, wie beispielsweise FTP-Benutzer eines FTP-Servers, dar! (''<property>'')
 +  * Verweis zur Man-Page (''<documentation>'')
 +  * ...
 +
 ======Kommandos====== ======Kommandos======
 +Zur Verwaltung von Diensten über das SMF stehen 4 Kommandos zur Verfügung:
 +
 ^Kommando^Verwendung^ ^Kommando^Verwendung^
 |''svcs''|Statusinformationen| |''svcs''|Statusinformationen|
Zeile 49: Zeile 56:
 |''svccfg''|Konfiguration der Dienste| |''svccfg''|Konfiguration der Dienste|
 |''svcprop''|Anzeigen von Properties| |''svcprop''|Anzeigen von Properties|
-|''inetadm''|Administration von inetd-Diensten| 
-|''inetconv''|inetd zu smf| 
- 
  
 =====svcs===== =====svcs=====
Zeile 87: Zeile 91:
 enabled      true enabled      true
 state        online state        online
-...+next_state   none 
 +state_time   19. Juli 2012 22:25:29 Uhr CEST 
 +logfile      /var/svc/log/network-inetd:default.log 
 +restarter    svc:/system/svc/restarter:default 
 +contract_id  132 
 +manifest     /etc/svc/profile/generic.xml 
 +manifest     /lib/svc/manifest/network/inetd.xml 
 +dependency   require_any/error svc:/network/loopback (online) 
 +dependency   require_all/error svc:/system/filesystem/local (online) 
 +dependency   optional_all/error svc:/milestone/network (online) 
 +dependency   optional_all/error svc:/network/rpc/bind (online) 
 +dependency   optional_all/none svc:/network/inetd-upgrade (disabled) 
 +dependency   require_all/none svc:/milestone/name-services (online)
 </code>| </code>|
-^Erklärung:|Der Dienst ''inetd:default'' ist aktiv und wird automatisch beim Boot gestartet. ...|+^Erklärung:|Der Dienst ''inetd:default'' ist aktiv und wird automatisch beim Boot gestartet. Der Dienste wurde am 19.Juli 2012 gestartet und schreibt seine Logs nach ''/var/svc/log/network-inetd:default.log''. Der Dienst wird durch zwei Manifest definiert und ist von zahlreichen Diensten abhängig.|
  
 ====-n==== ====-n====
Zeile 129: Zeile 145:
 </code>| </code>|
 ^Erklärung|Für den Dienst ''inetd'' ist ein Prozess ''inetd'' mit der PID ''462'' gestartet.| ^Erklärung|Für den Dienst ''inetd'' ist ein Prozess ''inetd'' mit der PID ''462'' gestartet.|
 +
 +======Internetverweise======
 +  * PDF "Solaris Service Management Facility" von Dipl. Chem. Rainer Orth, Technische Fakultät der Universität Bielefeld: [[http://www.techfak.uni-bielefeld.de/~ro/talks/smf.pdf]]
solaris_services.1342729733.txt.gz · Zuletzt geändert: von christian