| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
| solaris_services [2012/07/19 22:02] – christian | solaris_services [2012/07/19 22:50] (aktuell) – [-l] christian |
|---|
| ^Kommando^Verwendung^ | ======Aufbau====== |
| |svcs|Statusinformationen | 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. |
| |svcadm|Administration, aktivieren/deaktivieren| | In einem Fehlerfall werden Dienste neugestartet, sodass Applikationen immer zur Verfügung stehen: |
| |svccfg|Konfiguration der Dienste| | <code> |
| |svcprop|Anzeigen von Properties| | # svcs -p inetd |
| |inetadm|Administration von inetd-Diensten| | STATE STIME FMRI |
| |inetconv|inetd zu smf| | 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====== |
| | Zur Verwaltung von Diensten über das SMF stehen 4 Kommandos zur Verfügung: |
| | |
| | ^Kommando^Verwendung^ |
| | |''svcs''|Statusinformationen| |
| | |''svcadm''|Administration, aktivieren/deaktivieren| |
| | |''svccfg''|Konfiguration der Dienste| |
| | |''svcprop''|Anzeigen von Properties| |
| |
| ======svcs====== | =====svcs===== |
| |
| =====none / -a===== | ====none / -a==== |
| ^Parameter:|**-a** bzw. **keine**| | ^Parameter:|**-a** bzw. **keine**| |
| ^Bedeutung:|Alle Services anzeigen| | ^Bedeutung:|Alle Services anzeigen| |
| </code>| | </code>| |
| |
| =====-D===== | ====-D==== |
| ^Parameter:|**-D**| | ^Parameter:|**-D**| |
| ^Bedeutung:|Zeigt Dienste an, die von einem anderen (als FMRI definieren) abhängig sind.| | ^Bedeutung:|Zeigt Dienste an, die von einem anderen (als FMRI definieren) abhängig sind.| |
| </code>| | </code>| |
| ^Erklärung|Die deaktivierten Dienste ''hotplug:default'' und ''wusbd:default'', sowie die aktivierten Dienste ''filesystem/minimal:default'', ''devices:default'', etc... sind vom Dienst ''device/local'' abhängig.| | ^Erklärung|Die deaktivierten Dienste ''hotplug:default'' und ''wusbd:default'', sowie die aktivierten Dienste ''filesystem/minimal:default'', ''devices:default'', etc... sind vom Dienst ''device/local'' abhängig.| |
| =====-l===== | |
| | ====-l==== |
| ^Parameter:|**-l**| | ^Parameter:|**-l**| |
| ^Bedeutung:|Zeigt Details zu einem Dienst an| | ^Bedeutung:|Zeigt Details zu einem Dienst an| |
| 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==== |
| ^Parameter:|**-n**| | ^Parameter:|**-n**| |
| ^Bedeutung:|Zeigt Benachrichtigungseinstellungen (z.B. SNMP) eines Dienstes an.| | ^Bedeutung:|Zeigt Benachrichtigungseinstellungen (z.B. SNMP) eines Dienstes an.| |
| ^Erklärung|Für den Dienst ''inetd'' sind detailierte Fehler-Warnungen und -Entwarnung über SNMP aktiviert. Darüber hinaus werden erkannte Fehler auch per SMTP an ''root@localhost'' gemeldet.| | ^Erklärung|Für den Dienst ''inetd'' sind detailierte Fehler-Warnungen und -Entwarnung über SNMP aktiviert. Darüber hinaus werden erkannte Fehler auch per SMTP an ''root@localhost'' gemeldet.| |
| |
| | ====-p==== |
| =====-p===== | |
| ^Parameter:|**-p**| | ^Parameter:|**-p**| |
| ^Bedeutung:|Zeigt evtl. gestartete Prozesse für einen Service bzw. eine Serviceinstanz an| | ^Bedeutung:|Zeigt evtl. gestartete Prozesse für einen Service bzw. eine Serviceinstanz an| |
| </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]] |