Câu trả lời ngắn:
bad
: Nó hiển thị Systemd Unit files
trạng thái hỗ trợ
- bạn sẽ thấy loại tin nhắn này trên các hệ thống sử dụng
systemd
bạn có thể kiểm tra trạng thái hỗ trợ bằng lệnh:
sudo systemctl is-enabled <unit-name>
nếu đó là tập tin đơn vị là một dịch vụ systemd mẹ đẻ sau đó nó sẽ cho sản lượng enabled
, disabled
vv Nếu nó không phải là một dịch vụ systemd mẹ đẻ sau đó nó sẽ cung cấp cho báo cáo thư như thế nào.
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
nhưng với lệnh:
systemctl status apache2
or
service apache2 status
nó đưa ra trạng thái bad
. (có thể là do không thể in một tin nhắn hoàn chỉnh hoặc nhà phát triển quyết định in bad
)
Câu trả lời dài:
tập tin đơn vị hệ thống là gì?
Các đơn vị là các đối tượng mà systemd biết cách quản lý. Về cơ bản, đây là một đại diện được tiêu chuẩn hóa của tài nguyên hệ thống có thể được quản lý bởi bộ trình tiện ích và được thao tác bởi các tiện ích được cung cấp. Nó có thể được sử dụng để dịch vụ trừu tượng, tài nguyên mạng, thiết bị, gắn kết hệ thống tập tin và nhóm tài nguyên bị cô lập. Bạn có thể đọc chi tiết về các đơn vị systemd ở đây và đây
thí dụ:
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 sẽ kiểm tra xem có phải apache2
là một đơn vị bản địa hay không. Nếu không, nó sẽ yêu cầu systemd-sysv-generator
tạo một tệp ở định dạng đơn vị cung cấp hỗ trợ tương tự như các đơn vị bản địa. Trong ví dụ trên, tệp được tạo được giữ ở
/lib/systemd/system/apache2.service.d/apache2-systemd.conf
Drop-In: /lib/systemd/system/apache2.service.d
`-apache2-systemd.conf
Lưu ý: bạn có thể tìm thấy trình tạo tại /lib/systemd/system-generators/systemd-sysv-generator
và bạn có thể đọc thêm về điều đó
man systemd-sysv-generator
Điểm chính :
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. | |
+------------------+-------------------------+-----------+
nếu chúng ta chạy lệnh:
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
bạn có thể xem các đơn vị có nguồn gốc giống như systemd ssh
hay không docker
, ở đầu ra trên, nó sẽ chỉ hiển thị enabled
và đối với các đơn vị không giống như bản địa apache2
nhưng vẫn được bật, nó sẽ gửi thông báo với điều đó thay vì in bad
ở đây vì điều kiện này:
+------------------+-------------------------+-----------+
|"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. | |
+------------------+-------------------------+-----------+
Dung dịch:
trạng thái bad
sẽ không tạo ra vấn đề (tôi không chắc nó phụ thuộc) nhưng nó sẽ không cung cấp tất cả chức năng của systemctl
. bạn có thể đợi bản phát hành tiếp theo package
sẽ hỗ trợ systemd
. hoặc bạn có thể viết tệp đơn vị cho dịch vụ của mình hoặc bất kỳ tài nguyên nào khác bằng các tham chiếu đã cho.
Bạn có thể đọc chi tiết về systemd, systemctl và các đơn vị bằng cách sử dụng bên dưới Tài liệu tham khảo:
Hệ thống
Đơn vị Systemd và tại đây
Hệ thống