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:04] christian [Kommandos] |
solaris_services [2012/07/19 22:50] (aktuell) christian [-l] |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ======Aufbau====== | ======Aufbau====== | ||
| + | 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. | ||
| + | In einem Fehlerfall werden Dienste neugestartet, sodass Applikationen immer zur Verfügung stehen: | ||
| + | <code> | ||
| + | # svcs -p inetd | ||
| + | STATE STIME FMRI | ||
| + | online 22:06:54 svc:/network/inetd:default | ||
| + | 22:06:54 1343 inetd | ||
| + | # kill -9 1343; svcs -p inetd | ||
| + | STATE STIME FMRI | ||
| + | offline 22:25:29 svc:/network/inetd:default | ||
| + | # svcs -p inetd | ||
| + | STATE STIME FMRI | ||
| + | online 22:25:29 svc:/network/inetd:default | ||
| + | 22:25:29 1435 inetd | ||
| + | # tail /var/svc/log/network-inetd:default.log | ||
| + | [ Jul 19 22:25:29 Stopping because process received fatal signal from outside the service. ] | ||
| + | [ Jul 19 22:25:29 Executing stop method ("/usr/lib/inet/inetd stop"). ] | ||
| + | [ Jul 19 22:25:29 Method "stop" exited with status 0. ] | ||
| + | [ Jul 19 22:25:29 Executing start method ("/usr/lib/inet/inetd start"). ] | ||
| + | [ Jul 19 22:25:29 Method "start" exited with status 0. ] | ||
| + | </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 7: | 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 45: | 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 87: | 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]] | ||