lo stato del servizio sudo include cattivo;


32
$ 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

Cosa rappresenta la bad;parte sulla seconda riga dell'uscita? Ottengo questo per molti servizi, ad esempio mysql, winbind, virtualbox, alcuni dei quali ho già usato in modo impeccabile (cassandra è una nuova installazione).

Risposte:


42

Risposta breve:

  • bad: Mostra Systemd Unit fileslo stato di abilitazione
  • vedrai questo tipo di messaggio sui sistemi che usano systemd
  • puoi controllare lo stato di abilitazione usando il comando:

    sudo systemctl is-enabled <unit-name>
    

    se quel file di unità è un servizio systemd nativo, verrà generato un output enabled, disabledecc. Se non è un servizio systemd nativo, verrà inviato un messaggio simile a.

    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
    

    ma con comando:

    systemctl status apache2
    or
    service apache2 status
    

    dà status bad. (forse è perché non è in grado di stampare un messaggio completo o lo sviluppatore ha deciso di stampare bad)

Risposta lunga:

quali sono i file delle unità di sistema?

Le unità sono gli oggetti che systemd sa come gestire. Si tratta sostanzialmente di una rappresentazione standardizzata delle risorse di sistema che possono essere gestite dalla suite di demoni e manipolate dalle utility fornite. Può essere utilizzato per astrarre servizi, risorse di rete, dispositivi, montaggi di filesystem e pool di risorse isolati. Puoi leggere in dettaglio le unità di sistema qui e qui

esempio:

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 verificherà se apache2è un'unità nativa o meno. In caso contrario, verrà richiesto systemd-sysv-generatordi generare un file in formato unità che fornisce supporto simile alle unità native. Nell'esempio sopra, il file generato viene mantenuto su /lib/systemd/system/apache2.service.d/apache2-systemd.conf

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

Nota: puoi trovare il generatore su /lib/systemd/system-generators/systemd-sysv-generatore puoi leggere di più al riguardo

man systemd-sysv-generator

Punto principale :

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.                |           |
       +------------------+-------------------------+-----------+

se eseguiamo il comando:

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

puoi vedere se le unità sono native a systemd come sshe docker, nell'output sopra riportato mostrerà solo enabled, e per le unità che non sono native come apache2ma che sono ancora abilitate dà messaggi con quello piuttosto che stampare badqui a causa di questa condizione:

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

Soluzione:

lo stato badnon creerà problemi (non sono sicuro che dipenda) ma non fornirà tutte le funzionalità di systemctl. puoi aspettare la prossima versione di ciò packageche supporterà nativamente systemd. oppure puoi scrivere un file di unità per il tuo servizio o qualsiasi altra risorsa utilizzando riferimenti specifici.

Puoi leggere in dettaglio su systemd, systemctl e le unità usando i seguenti riferimenti:

  1. systemctl

  2. Unità Systemd e qui

  3. systemd


Grazie davvero per la completa e premurosa deliberazione dell'argomento!
opaco

2
Questa risposta sembra davvero completa ma è un po 'confusa ... sembra che tu fornisca molte informazioni senza affermare in realtà la conclusione sintetica che si potrebbe (forse) derivare dalle informazioni. Ad esempio la conclusione diretta e concisa che deduco (con un po 'di lavoro) dalla tua breve risposta è che quando un servizio (unità systemd) non è nativo, systemctl non può ottenere il suo stato di abilitazione senza reindirizzare a systemd-sysv-install. Il comando di stato systemctl per qualche motivo non lo fa, ma invece riporta "cattivo", mentre systemctl è abilitato farà il reindirizzamento per darti lo stato.
EricS,

1
Penso che alcune delle cose che mi hanno confuso fossero alcune parole, specialmente nei punti elenco di apertura. Ho inviato alcune modifiche per cercare di migliorare.
EricS,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.