web-dev-qa-db-fra.com

le statut de service sudo inclut mauvais;

$ 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

Que représente la partie bad; sur la 2e ligne de la sortie? Je reçois cela pour de nombreux services, par exemple mysql, winbind, virtualbox, dont certains que j'ai déjà parfaitement utilisés (cassandra étant une nouvelle installation).

32
matt

Réponse courte:

  • badname__: Affiche l'état d'activation de Systemd Unit files
  • vous verrez ce type de message sur les systèmes qui utilisent systemdname__
  • 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 générera une sortie enabledname__, disabledname__, etc. S'il ne s'agit pas d'un service systemd natif, un rapport comme celui-ci sera renvoyé.

    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
    

    il donne le statut badname__. (c'est peut-être parce qu'il est impossible d'imprimer un message complet ou que le développeur a décidé d'imprimer badname__)

Réponse longue:

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 si Apache2 est une unité native ou non. Sinon, il demandera à 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

Remarque: vous pouvez trouver le générateur à /lib/systemd/system-generators/systemd-sysv-generator et 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 natives de systemd telles que sshet dockername__, dans la sortie ci-dessus, il affichera uniquement enabledname__, et pour les unités non natives telles que Apache2 mais toujours activées, il donnera des messages avec cela plutôt que d'imprimer badici :

       +------------------+-------------------------+-----------+
       |"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:

status badne 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 systemctlname__. vous pouvez attendre la prochaine version de cette packagequi supportera nativement systemdname__. 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:

  1. Systemctl

  2. nités Systemd et ici

  3. Systemd

41
pl_rock