Benutzer-Werkzeuge

Webseiten-Werkzeuge


solaris_services

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:

# 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. ]

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:

StatusBedeutung
uninitializedDienst unkonfiguriert
disableddeaktivierter Dienst
offlineDienst wartet auf Ereignis
onlineDienst aktiv
degraded(teilweise) fehlerhafter Dienst
maintenanceDienst konnte nicht gestartet werden
legacy_runalter 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:

KommandoVerwendung
svcsStatusinformationen
svcadmAdministration, aktivieren/deaktivieren
svccfgKonfiguration der Dienste
svcpropAnzeigen von Properties

svcs

none / -a

Parameter:-a bzw. keine
Bedeutung:Alle Services anzeigen
Beispiel:
# svcs
# svcs -a

-D

Parameter:-D
Bedeutung:Zeigt Dienste an, die von einem anderen (als FMRI definieren) abhängig sind.
Beispiel:
# svcs -D device/local
STATE          STIME    FMRI
disabled       21:13:14 svc:/system/hotplug:default
disabled       21:13:14 svc:/system/wusbd:default
online         21:13:16 svc:/system/filesystem/minimal:default
online         21:13:17 svc:/milestone/devices:default
online         21:13:35 svc:/system/hal:default
online         21:13:35 svc:/milestone/self-assembly-complete:default
ErklärungDie 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

Parameter:-l
Bedeutung:Zeigt Details zu einem Dienst an
Beispiel:
# svcs -l inetd
fmri         svc:/network/inetd:default
name         inetd
enabled      true
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)
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

Parameter:-n
Bedeutung:Zeigt Benachrichtigungseinstellungen (z.B. SNMP) eines Dienstes an.
Beispiel:
# svcs -n inetd
Notification parameters for FMA Events
    Event: problem-diagnosed
        Notification Type: smtp
            Active: true
            reply-to: root@localhost
            to: root@localhost

        Notification Type: snmp
            Active: true

        Notification Type: syslog
            Active: true

    Event: problem-repaired
        Notification Type: snmp
            Active: true

    Event: problem-resolved
        Notification Type: snmp
            Active: true
ErklärungFü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:
# svcs -p inetd
STATE          STIME    FMRI
online         21:13:34 svc:/network/inetd:default
               21:13:34      462 inetd
ErklärungFür den Dienst inetd ist ein Prozess inetd mit der PID 462 gestartet.

Internetverweise

solaris_services.txt · Zuletzt geändert: 2012/07/19 22:50 von christian