Réponse courte:
bad
: Il montre l' Systemd Unit files
état d'activation
- vous verrez ce genre de message sur les systèmes qui utilisent
systemd
vous pouvez vérifier l'état d'activation à l'aide de la commande:
sudo systemctl is-enabled <unit-name>
si ce fichier d'unité est un service systemd natif, il donnera une sortie enabled
, disabled
etc. S'il ne s'agit pas d'un service systemd natif, il donnera alors un message comme.
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
mais avec commande:
systemctl status apache2
or
service apache2 status
ça donne un statut bad
. (c'est peut-être parce qu'il est impossible d'imprimer un message complet ou que le développeur a décidé d'imprimer bad
)
Longue réponse:
Que sont les fichiers d'unité système?
Les unités sont les objets que systemd sait gérer. Il s’agit essentiellement d’une représentation normalisée des ressources système pouvant être gérées par la suite de démons et manipulées par les utilitaires fournis. Il peut être utilisé pour résumer des services, des ressources réseau, des périphériques, des montages de système de fichiers et des pools de ressources isolés. Vous pouvez lire en détail sur les unités systemd ici et ici
Exemple:
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 vérifiera s'il apache2
s'agit d'une unité native ou non. Sinon, il vous sera demandé systemd-sysv-generator
de générer un fichier au format d'unité offrant un support similaire à celui des unités natives. Dans l'exemple ci-dessus, le fichier généré est conservé à
/lib/systemd/system/apache2.service.d/apache2-systemd.conf
Drop-In: /lib/systemd/system/apache2.service.d
`-apache2-systemd.conf
Note: vous pouvez trouver le générateur à /lib/systemd/system-generators/systemd-sysv-generator
et vous pouvez en savoir plus à ce sujet
man systemd-sysv-generator
Point principal :
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. | |
+------------------+-------------------------+-----------+
si on lance la commande:
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
vous pouvez voir si les unités sont originaires de systemd comme ssh
et docker
, dans la sortie ci - dessus , il affichera seulement enabled
, et pour les unités qui ne sont pas indigènes comme apache2
mais lui ont permis donne des messages avec ce plutôt que d' imprimer bad
ici à cause de cette condition:
+------------------+-------------------------+-----------+
|"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. | |
+------------------+-------------------------+-----------+
Solution:
le statut bad
ne créera pas de problème (je ne suis pas sûr que cela dépend) mais il ne fournira pas toutes les fonctionnalités de systemctl
. vous pouvez attendre la prochaine version qui package
supportera nativement systemd
. ou vous pouvez écrire un fichier d'unité pour votre service ou toute autre ressource en utilisant des références données.
Vous pouvez lire plus en détail sur systemd, systemctl et les unités en utilisant les références ci-dessous:
Systemctl
Unités Systemd et Ici
Systemd