คำตอบสั้น ๆ :
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 รู้วิธีจัดการ สิ่งเหล่านี้เป็นตัวแทนมาตรฐานของทรัพยากรระบบที่สามารถจัดการได้โดยชุดของ daemons และจัดการโดยยูทิลิตี้ที่ให้มา มันสามารถใช้กับบริการนามธรรมทรัพยากรเครือข่ายอุปกรณ์ระบบไฟล์เมาท์และพูลทรัพยากรที่แยกได้ คุณสามารถอ่านรายละเอียดเกี่ยวกับหน่วย 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 like หรือไม่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
หน่วย Systemdและที่นี่
Systemd