| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
| solaris_services [2012/07/19 22:04] – [Kommandos] christian | solaris_services [2012/07/19 22:50] (aktuell) – [-l] christian |
|---|
| ======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| |
| |''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===== |
| 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==== |
| </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]] |