Kurze Antwort:
bad: Zeigt den Systemd Unit filesAktivierungsstatus an
- Sie werden diese Art von Meldung auf Systemen sehen, die verwenden
systemd
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, wird sie ausgegeben enabled , disabledusw. Wenn es keine native systemd Service ist dann geben sie eine Nachricht mitteilen.
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 Status bad. (Vielleicht liegt es daran, dass eine vollständige Nachricht nicht gedruckt werden kann oder der Entwickler sich für den Druck entschieden hatbad )
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 hier und im Detail über systemd Einheiten lesen hier
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 apache2es sich um eine native Einheit handelt oder nicht. Ist dies nicht der Fall, werden Sie systemd-sysv-generatoraufgefordert, eine Datei im Einheitenformat zu generieren, die ähnliche Unterstützung bietet wie native Einheiten. Im obigen Beispiel wird die generierte Datei auf gespeichert
/lib/systemd/system/apache2.service.d/apache2-systemd.conf
Drop-In: /lib/systemd/system/apache2.service.d
`-apache2-systemd.conf
Hinweis: Sie finden den Generator unter /lib/systemd/system-generators/systemd-sysv-generatorund 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 sind sshund dockerin der obigen Ausgabe nur angezeigt werden enabled, und für Einheiten, die nicht systemeigen sind, apache2aber dennoch aktiviert sind, badwerden aufgrund dieser Bedingung Meldungen angezeigt, anstatt hier gedruckt zu werden:
+------------------+-------------------------+-----------+
|"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 badwird kein Problem erstellen (ich bin nicht sicher, ob es davon abhängt), aber es wird nicht alle Funktionen von systemctl. Sie können auf das nächste Release warten, packagedas von Haus aus unterstützt wird systemd. 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:
Systemctl
Systemd Einheiten und hier
Systemd