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 21:53] christian [none / -a] |
solaris_services [2012/07/19 22:50] (aktuell) christian [-l] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ^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| | ||
Zeile 18: | Zeile 67: | ||
</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.| |
- | Beispiel: | + | ^Beispiel:|<code> |
- | <code> | + | |
# svcs -D device/local | # svcs -D device/local | ||
STATE STIME FMRI | STATE STIME FMRI | ||
Zeile 31: | Zeile 79: | ||
online 21:13:35 svc:/system/hal:default | online 21:13:35 svc:/system/hal:default | ||
online 21:13:35 svc:/milestone/self-assembly-complete:default | online 21:13:35 svc:/milestone/self-assembly-complete:default | ||
- | </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.| | ||
- | =====-l===== | + | ====-l==== |
- | Parameter: **-l** | + | ^Parameter:|**-l**| |
- | Bedeutung: Zeigt Details zu einem Dienst an | + | ^Bedeutung:|Zeigt Details zu einem Dienst an| |
- | Beispiel: | + | ^Beispiel:|<code> |
- | <code> | + | |
# svcs -l inetd | # svcs -l inetd | ||
fmri svc:/network/inetd:default | fmri svc:/network/inetd:default | ||
Zeile 43: | Zeile 91: | ||
enabled true | enabled true | ||
state online | state online | ||
- | ... | + | next_state none |
- | </code> | + | 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>| | ||
+ | ^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.| |
- | Beispiel: | + | ^Beispiel:|<code> |
- | <code> | + | |
# svcs -n inetd | # svcs -n inetd | ||
Notification parameters for FMA Events | Notification parameters for FMA Events | ||
Zeile 72: | Zeile 132: | ||
Notification Type: snmp | Notification Type: snmp | ||
Active: true | Active: true | ||
- | </code> | + | </code>| |
+ | ^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==== | ||
+ | ^Parameter:|**-p**| | ||
+ | ^Bedeutung:|Zeigt evtl. gestartete Prozesse für einen Service bzw. eine Serviceinstanz an| | ||
+ | ^Beispiel:|<code> | ||
+ | # svcs -p inetd | ||
+ | STATE STIME FMRI | ||
+ | online 21:13:34 svc:/network/inetd:default | ||
+ | 21:13:34 462 inetd | ||
+ | </code>| | ||
+ | ^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]] |