сервисное состояние sudo включает плохо;

$ 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

Что делает bad; часть на 2-й строке вывода обозначает? Я получаю это для многих сервисов, например, mysql, winbind, virtualbox, некоторые из которых я уже безупречно использовал (cassandra быть новой установкой).

32
задан 12 October 2016 в 09:25

1 ответ

Короткий ответ:

  • bad : Это показывает Systemd Unit files состояние реализации возможностей
  • Вы будете видеть этот вид сообщения в системах, которые используют systemd
  • можно проверить команду использования состояния реализации возможностей:

    sudo systemctl is-enabled <unit-name>
    

    если тот файл единицы будет собственным systemd сервисом затем, то он даст вывод enabled, disabled, и т.д., Если это не будет собственный systemd сервис затем, то это даст отчету сообщение как.

    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
    

    но с командой:

    systemctl status apache2
    or
    service apache2 status
    

    это дает состояние bad. (возможно, это - потому что это не может распечатать полное сообщение, или разработчик решил распечатать bad)

Длинный ответ:

что такое системные файлы единицы?

Единицы являются объектами, которые знает systemd, как справиться. Это в основном стандартизированное представление системных ресурсов, которыми может управлять комплект демонов и управлять обеспеченные утилиты. Это может привыкнуть к реферативным службам, сетевым ресурсам, устройствам, файловая система монтируется, и изолированные пулы ресурсов. Можно читать подробно о systemd единицах здесь и здесь

пример:

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 проверит если apache2 собственная единица или нет. В противном случае затем это спросит systemd-sysv-generator генерировать файл в формате единицы, который оказывает поддержку, подобную собственным единицам. В вышеупомянутом примере сгенерированный файл сохранен в /lib/systemd/system/apache2.service.d/apache2-systemd.conf

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

Примечание: можно найти генератор в /lib/systemd/system-generators/systemd-sysv-generator и можно читать больше об этом

man systemd-sysv-generator

Основной момент:

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

если мы выполняем команду:

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

Вы видите, являются ли единицы собственными к systemd как ssh и docker, в вышеупомянутом выводе это покажет только enabled, и для единиц, которые не являются собственными как apache2 но все еще включил его, дает сообщения с этим вместо печати bad здесь из-за этого условия:

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

Решение:

состояние bad не создаст проблему (я не уверен, что она зависит), но она не обеспечит всю функциональность systemctl. можно ожидать следующего выпуска этого package это будет исходно поддерживать systemd. или можно записать файл единицы для сервиса или любого другого ресурса с помощью данный ссылки.

Можно читать подробно о systemd, systemctl и использовании единиц ниже Ссылок:

  1. Systemctl

  2. Единицы Systemd и Здесь

  3. Systemd

42
ответ дан 23 November 2019 в 00:39

Другие вопросы по тегам:

Похожие вопросы: