lo stato del servizio sudo include il brutto;

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

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

    
posta matt 12.10.2016 - 15:02

1 risposta

36

Risposta breve:

  • bad : mostra lo stato di abilitazione Systemd Unit files
  • vedrai questo tipo di messaggio sui sistemi che utilizzano systemd
  • puoi controllare lo stato di abilitazione usando il comando:

    sudo systemctl is-enabled <unit-name>
    

    se quel file unitario è un servizio systemd nativo allora darà output enabled , disabled , ecc. Se non è un servizio systemd nativo allora darà un messaggio come

    al report.

    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
    

    fornisce lo stato 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 dell'unità di sistema?

Le unità sono gli oggetti che systemd sa come gestire. Si tratta fondamentalmente di una rappresentazione standardizzata delle risorse di sistema che può essere gestita dalla suite di demoni e manipolata dalle utilità fornite. Può essere utilizzato per astrarre servizi, risorse di rete, dispositivi, supporti per filesystem e pool di risorse isolate. Puoi leggere in dettaglio le unità systemd qui e here

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 controllerà se apache2 è un'unità nativa o meno. In caso contrario, allora chiederà a systemd-sysv-generator di generare un file in formato unitario che fornisca supporto simile alle unità native. Nell'esempio sopra, il file generato viene mantenuto su % Co_de%

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

Nota: puoi trovare il generatore a /lib/systemd/system/apache2.service.d/apache2-systemd.conf e puoi leggere ulteriori informazioni 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 per systemd come /lib/systemd/system-generators/systemd-sysv-generator e ssh , nell'output precedente mostrerà solo docker , e per le unità che non sono native come enabled ma sono comunque abilitate per i messaggi con quello invece di stampare apache2 qui 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 bad non creerà problemi (non sono sicuro che dipenda) ma non fornirà tutte le funzionalità di bad . puoi aspettare la prossima versione di quel systemctl che supporterà nativamente package . oppure puoi scrivere un file unitario per il tuo servizio o qualsiasi altra risorsa usando i riferimenti forniti.

Puoi leggere in dettaglio su systemd, systemctl e unità usando sotto References:

  1. Systemctl

  2. Unità Systemd e Here

  3. Systemd

risposta data pl_rock 12.10.2016 - 18:05

Leggi altre domande sui tag