Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
solaris_services [2012/07/19 22:23] christian [Aufbau] |
solaris_services [2012/07/19 22:50] (aktuell) christian [-l] |
||
---|---|---|---|
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 | + | <code> |
- | * Dienstweises detailliertes Logging | + | # svcs -p inetd |
- | * bei Fehlerfall automatische Neustarts | + | STATE STIME FMRI |
- | * Kompatibel zu bisherigen rc*.d-Skripten | + | online 22:06:54 svc:/network/inetd:default |
- | * Definition als "FMRI" - Fault Managed Resource Identifier | + | 22:06:54 1343 inetd |
- | * Format: svc:/GRUPPE/dienst:default | + | # kill -9 1343; svcs -p inetd |
- | * z.B. svc:/network/inetd:default | + | STATE STIME FMRI |
- | * Zustände: | + | offline 22:25:29 svc:/network/inetd:default |
- | * ''uninitialized'' - Dienst unkonfiguriert | + | # svcs -p inetd |
- | * ''disabled'' - deaktivierter Dienst | + | STATE STIME FMRI |
- | * ''offline'' - Dienst wartet auf Ereignis | + | online 22:25:29 svc:/network/inetd:default |
- | * ''online'' - Dienst aktiv | + | 22:25:29 1435 inetd |
- | * ''degraded'' - (teilweise) fehlerhafter Dienst | + | # tail /var/svc/log/network-inetd:default.log |
- | * ''maintenance'' - Dienst konnte nicht gestartet werden | + | [ Jul 19 22:25:29 Stopping because process received fatal signal from outside the service. ] |
- | * ''legacy_run'' - alter init.d-Dienst | + | [ Jul 19 22:25:29 Executing stop method ("/usr/lib/inet/inetd stop"). ] |
- | * Manifest | + | [ Jul 19 22:25:29 Method "stop" exited with status 0. ] |
- | * Dienst wird durch Manifest definiert | + | [ Jul 19 22:25:29 Executing start method ("/usr/lib/inet/inetd start"). ] |
- | * Manifest unterhalb von ''/lib/svc/manifest'', z.B. für ''network/inetd'' Manifest unterhalb ''/lib/svc/manifest/network/inetd.xml'' | + | [ Jul 19 22:25:29 Method "start" exited with status 0. ] |
- | * Logs unterhalb von ''/var/svc/log'', z.B. für ''network/inetd'' Logs unterhalb von ''/var/svc/log/network-inetd:default.log'' | + | </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 29: | 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 67: | 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 109: | 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]] |