Коротка відповідь:
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)
Довга відповідь:
що таке файли системного блоку?
Одиниці - це об'єкти, якими системний вміє керувати. Це в основному стандартизоване представлення системних ресурсів, якими можна керувати набір демонів і маніпулювати наданими утилітами. Його можна використовувати для абстрактних служб, мережевих ресурсів, пристроїв, кріплень файлової системи та ізольованих пулів ресурсів. Ви можете детально прочитати про системні блоки тут і тут
приклад:
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
ви можете бачити, чи є одиниці, які є рідними для системних подібних даних, 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 та модулі, використовуючи нижче Посилання:
Systemctl
Системні одиниці і Тут
Системний