Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
10.2. システムサービスの管理
専門知識のさらなる拡充を図るには、Red Hat System Administration II (RH134) トレーニングコースもあります。
以前のバージョンの Red Hat Enterprise Linux は、SysV init または Upstart で配布されており、/etc/rc.d/init.d/
ディレクトリーにある init スクリプト を使用していました。この init スクリプトは通常の Bash で書かれており、システム管理者がシステム内で、サービスの状態とデーモンを管理できるようになっていました。Red Hat Enterprise Linux 7 では、この init スクリプトは、サービスユニット に代わっています。
サービスユニットは、ファイル拡張子 .service
で終わり、init スクリプトと同様のロールを担います。システムサービスの表示、開始、停止、再開、有効化、無効化には、表10.3「service ユーティリティーと systemctl の比較」、表10.4「chkconfig ユーティリティーと systemctl の比較」、および本セクションで説明されているように、systemctl
コマンドラインを使用します。service
コマンドおよび chkconfig
コマンドは、引き続きシステムで利用可能になっており、期待通りに機能しますが、これらは互換性のために含まれており、使用は推奨されていません。
表10.3 service ユーティリティーと systemctl の比較
サービス | systemctl | 詳細 |
---|---|---|
|
| サービスを起動します。 |
|
| サービスを停止します。 |
|
| サービスを再起動します。 |
|
| サービスが実行中の場合のみ、再起動します。 |
|
| 設定を再読み込みします。 |
|
| サービスが実行中かどうかをチェックします。 |
|
| すべてのサービスのステータスを表示します。 |
表10.4 chkconfig ユーティリティーと systemctl の比較
chkconfig | systemctl | 詳細 |
---|---|---|
|
| サービスを有効にします。 |
|
| サービスを無効にします。 |
|
| サービスが有効かどうかを確認します。 |
|
| サービスを一覧表示し、各サービスが有効かどうかを確認します。 |
|
| 指定されたユニットの前に開始するように指定されているサービスを一覧表示します。 |
|
| 指定されたユニットの後に開始するように指定されているサービスを一覧表示します。 |
サービスユニットの指定
分かりやすくするため、本セクションの残りの部分のコマンド例では、.service
ファイル拡張子がついた完全なユニット名を使用します。以下に例を示します。
~]# systemctl stop nfs-server.service
ただし、ファイル拡張子は省略することができます。省略すると、systemctl
は、引数がサービスユニットであることを想定します。以下のコマンドは、上記のコマンドと同等のものになります。
~]# systemctl stop nfs-server
また、ユニットによってはエイリアス名を持つものもあります。この名前は、ユニット名よりも短くすることができ、ユニット名の代わりとして使用できます。特定のユニットに使用できるエイリアスを見つけるには、以下のコマンドを実行します。
~]# systemctl show nfs-server.service -p Names
chroot 環境における systemctl の挙動
chroot
コマンドを使用して root ディレクトリーを変更すると、ほとんどの systemctl
コマンドは、アクションの実行をすべて拒否します。なぜなら、systemd
プロセスと、chroot
コマンドを使用しているユーザーでは、ファイルシステムの見え方が異なるからです。このような状況は、systemctl
が キックスタート
ファイルから呼び出されたときなどに発生します。
例外が、systemctl enable
や systemctl disable
などのユニットファイルコマンドです。このコマンドは、実行中のシステムを必要とせず実行中のプロセスに影響を与えませんが、ユニットファイルには影響を及ぼします。したがってこのようなコマンドは、chroot
環境であっても実行することが可能です。たとえば、/srv/website1/
ディレクトリー配下で、システムの httpd
サービスを有効にするときは、以下のコマンドを実行します。
~]# chroot /srv/website1 ~]# systemctl enable httpd.service Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service, pointing to /usr/lib/systemd/system/httpd.service.
10.2.1. サービスの一覧表示
読み込み済みのサービスユニットの一覧を表示するには、シェルプロンプトで以下を実行します。
systemctl list-units --type service
各サービスのユニットファイルに対して、このコマンドは正式名 (UNIT
) の後に、そのユニットファイルが読み込まれているかどうか (LOAD
)、そのユニットファイルアクティベーションの状態の概要 (ACTIVE
) および詳細 (SUB
) な状態、そして簡単な説明 (DESCRIPTION
) を示します。
デフォルトでは、systemctl list-units
コマンドは、アクティブなユニットのみを表示します。状態に関係なく読み込み済みユニットをすべて表示する場合は、コマンドラインオプションの --all
または -a
を付けて、以下のコマンドを実行します。
systemctl list-units --type service --all
また、利用可能なサービスユニットを一覧表示して、各ユニットが有効かどうかを確認できます。これには、以下のコマンドを実行します。
systemctl list-unit-files --type service
このコマンドにより、各サービスユニットの完全な名前 (UNIT FILE
) と、サービスユニットが有効かどうか (STATE
) が表示されます。個別のサービスユニットの状態を判断する方法は 「サービスステータスの表示」 を参照してください。
例10.1 サービスの一覧表示
読み込み済みのサービスユニットの一覧を表示するには、以下のコマンドを実行します。
~]$ systemctl list-units --type service
UNIT LOAD ACTIVE SUB DESCRIPTION
abrt-ccpp.service loaded active exited Install ABRT coredump hook
abrt-oops.service loaded active running ABRT kernel log watcher
abrt-vmcore.service loaded active exited Harvest vmcores for ABRT
abrt-xorg.service loaded active running ABRT Xorg log watcher
abrtd.service loaded active running ABRT Automated Bug Reporting Tool
...
systemd-vconsole-setup.service loaded active exited Setup Virtual Console
tog-pegasus.service loaded active running OpenPegasus CIM Server
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
46 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'
インストール済みのサービスユニットファイルを一覧表示して、そのユニットが有効かどうかを判断するには、以下コマンドを実行します。
~]$ systemctl list-unit-files --type service UNIT FILE STATE abrt-ccpp.service enabled abrt-oops.service enabled abrt-vmcore.service enabled abrt-xorg.service enabled abrtd.service enabled ... wpa_supplicant.service disabled ypbind.service disabled 208 unit files listed.