it-swarm.com.de

Sudo-Service-Status enthält schlecht;

$ Sudo service cassandra status
● cassandra.service - LSB: distributed storage system for structured data
   Loaded: loaded (/etc/init.d/cassandra; bad; vendor preset: enabled)
   Active: active (running) since Wed 2016-10-12 15:54:40 IDT; 4min 4s ago

Wofür steht der Teil bad; in der 2. Zeile der Ausgabe? Ich bekomme dies für viele Dienste, z. mysql, winbind, virtualbox, von denen ich einige bereits fehlerfrei benutzt habe (cassandra ist eine Neuinstallation).

32
matt

Kurze Antwort:

  • bad: Zeigt den Aktivierungsstatus Systemd Unit files an
  • diese Art von Meldung wird auf Systemen angezeigt, die systemd verwenden.
  • sie können den Aktivierungsstatus mit dem folgenden Befehl überprüfen:

    Sudo systemctl is-enabled <unit-name>
    

    wenn diese Unit-Datei ein systemeigener Dienst ist, gibt sie die Ausgabe enabled, disabled usw. aus. Wenn es sich nicht um einen systemeigenen Dienst handelt, gibt sie eine Meldung wie.

    Sudo systemctl is-enabled Apache2
    Apache2.service is not a native service, redirecting to systemd-sysv-install
    Executing /lib/systemd/systemd-sysv-install is-enabled Apache2
    enabled
    

    aber mit befehl:

    systemctl status Apache2
    or
    service Apache2 status
    

    es gibt den Status bad. (Vielleicht liegt es daran, dass es nicht in der Lage ist, eine vollständige Nachricht zu drucken, oder der Entwickler hat beschlossen, bad zu drucken.)

Lange Antwort:

Was sind System-Unit-Dateien?

Einheiten sind die Objekte, die systemd zu verwalten weiß. Dies ist im Grunde eine standardisierte Darstellung von Systemressourcen, die von der Daemon-Suite verwaltet und von den bereitgestellten Dienstprogrammen bearbeitet werden können. Sie können damit Dienste, Netzwerkressourcen, Geräte, Dateisystem-Mounts und isolierte Ressourcenpools abstrahieren. Sie können ausführlich über systemd units hier und hier lesen

Beispiel:

systemctl status Apache2
* Apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/Apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/Apache2.service.d
           `-Apache2-systemd.conf
   Active: active (running) since Wed 2016-10-12 14:29:42 UTC; 17s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1027 ExecStart=/etc/init.d/Apache2 start (code=exited, status=0/SUCCESS)

systemctl prüft, ob Apache2 eine native Einheit ist oder nicht. Ist dies nicht der Fall, wird systemd-sysv-generator aufgefordert, eine Datei im Einheitenformat zu generieren, die eine ähnliche Unterstützung wie native Einheiten bietet. Im obigen Beispiel wird die generierte Datei unter /lib/systemd/system/Apache2.service.d/Apache2-systemd.conf gespeichert.

Drop-In: /lib/systemd/system/Apache2.service.d
               `-Apache2-systemd.conf

Hinweis: Sie finden den Generator unter /lib/systemd/system-generators/systemd-sysv-generator und können mehr darüber lesen

man systemd-sysv-generator

Hauptpunkt :

is-enabled NAME...
       Checks whether any of the specified unit files are enabled (as with
       enable). Returns an exit code of 0 if at least one is enabled,
       non-zero otherwise. Prints the current enable status (see table).
       To suppress this output, use --quiet.

       Table 1.  is-enabled output
       +------------------+-------------------------+-----------+
       |Name              | Description             | Exit Code |
       +------------------+-------------------------+-----------+
       |"enabled"         | Enabled via             |           |
       +------------------+ .wants/, .requires/     |           |
       |"enabled-runtime" | or alias symlinks       |           |
       |                  | (permanently in         | 0         |
       |                  | /etc/systemd/system/,   |           |
       |                  | or transiently in       |           |
       |                  | /run/systemd/system/).  |           |
       +------------------+-------------------------+-----------+
       |"linked"          | Made available through  |           |
       +------------------+ one or more symlinks    |           |
       |"linked-runtime"  | to the unit file        |           |
       |                  | (permanently in         |           |
       |                  | /etc/systemd/system/    |           |
       |                  | or transiently in       | > 0       |
       |                  | /run/systemd/system/),  |           |
       |                  | even though the unit    |           |
       |                  | file might reside       |           |
       |                  | outside of the unit     |           |
       |                  | file search path.       |           |
       +------------------+-------------------------+-----------+
       |"masked"          | Completely disabled,    |           |
       +------------------+ so that any start       |           |
       |"masked-runtime"  | operation on it fails   |           |
       |                  | (permanently in         | > 0       |
       |                  | /etc/systemd/system/    |           |
       |                  | or transiently in       |           |
       |                  | /run/systemd/systemd/). |           |
       +------------------+-------------------------+-----------+
       |"static"          | The unit file is not    | 0         |
       |                  | enabled, and has no     |           |
       |                  | provisions for enabling |           |
       |                  | in the "[Install]"      |           |
       |                  | section.                |           |
       +------------------+-------------------------+-----------+
       |"indirect"        | The unit file itself is | 0         |
       |                  | not enabled, but it has |           |
       |                  | a non-empty Also=       |           |
       |                  | setting in the          |           |
       |                  | "[Install]" section,    |           |
       |                  | listing other unit      |           |
       |                  | files that might be     |           |
       |                  | enabled.                |           |
       +------------------+-------------------------+-----------+
       |"disabled"        | Unit file is not        | > 0       |
       |                  | enabled, but contains   |           |
       |                  | an "[Install]" section  |           |
       |                  | with installation       |           |
       |                  | instructions.           |           |
       +------------------+-------------------------+-----------+
       |"bad"             | Unit file is invalid or | > 0       |
       |                  | another error occurred. |           |
       |                  | Note that is-enabled    |           |
       |                  | will not actually       |           |
       |                  | return this state, but  |           |
       |                  | print an error message  |           |
       |                  | instead. However the    |           |
       |                  | unit file listing       |           |
       |                  | printed by              |           |
       |                  | list-unit-files might   |           |
       |                  | show it.                |           |
       +------------------+-------------------------+-----------+

wenn wir den Befehl ausführen:

Sudo systemctl is-enabled ssh
enabled

Sudo systemctl is-enabled docker
enabled

Sudo systemctl is-enabled Apache2
Apache2.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install is-enabled Apache2
enabled

sie können sehen, ob Einheiten systemeigen wie ssh und docker sind. In der obigen Ausgabe wird nur enabled und für Einheiten, die nicht systemeigen wie Apache2 sind, angezeigt immer noch aktiviert, gibt es Nachrichten mit diesem Wert, anstatt bad hier zu drucken:

       +------------------+-------------------------+-----------+
       |"bad"             | Unit file is invalid or | > 0       |
       |                  | another error occurred. |           |
       |                  | Note that is-enabled    |           |
       |                  | will not actually       |           |
       |                  | return this state, but  |           |
       |                  | print an error message  |           |
       |                  | instead. However the    |           |
       |                  | unit file listing       |           |
       |                  | printed by              |           |
       |                  | list-unit-files might   |           |
       |                  | show it.                |           |
       +------------------+-------------------------+-----------+

Lösung:

status bad wird kein Problem verursachen (ich bin nicht sicher, ob es davon abhängt), aber es wird nicht alle Funktionen von systemctl bereitstellen. Sie können auf die nächste Version von package warten, die von Haus aus systemd unterstützt. oder Sie können eine Unit-Datei für Ihren Service oder eine andere Ressource unter Verwendung der angegebenen Referenzen schreiben.

Sie können im Detail über systemd, systemctl und units lesen, indem Sie die folgenden Referenzen verwenden:

  1. Systemctl

  2. Systemd Einheiten und hier

  3. Systemd

41
pl_rock