$ 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
出力の2行目のbad;
パートは何を表していますか?私はこれを多くのサービス、例えばmysql、winbind、virtualbox。これらのいくつかはすでに完璧に使用しています(cassandraは新規インストールです)。
短い答え:
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が管理方法を知っているオブジェクトです。これらは基本的に、一連のデーモンで管理し、提供されたユーティリティで操作できるシステムリソースの標準化された表現です。サービス、ネットワークリソース、デバイス、ファイルシステムマウント、および分離されたリソースプールを抽象化するために使用できます。システム化されたユニットについて詳しく読むことができます here および here
例:
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
のようにsystemdにネイティブかどうかを確認できます。上記の出力では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. | |
+------------------+-------------------------+-----------+
解決策:
status bad
は問題を引き起こしません(依存するかどうかはわかりません)が、systemctl
のすべての機能を提供するわけではありません。 package
をネイティブでサポートするsystemd
の次のリリースを待つことができます。または、指定された参照を使用して、サービスまたはその他のリソースのユニットファイルを作成できます。
以下の参照を使用して、systemd、systemctl、およびunitsについて詳しく読むことができます。