CentOS7のサービス・デーモンの起動

Linux入門マニュアルを無料プレゼントしています。

ダウンロードは今すぐこちらをクリック

CentOS7では、サービスの制御をsystemdにて行います。
具体的なコマンドとしては、systemctlを利用して起動、停止、状態確認などを行います。
これらはユニットと呼ばれる単位で管理を行い、下記の幾つかのタイプが存在ます。
start httpdを起動します。
stop httpdを停止します。
service 各種デーモンやサービスを起動
target 起動プロセスやサービスなどの複数のユニットをグループにしてまとめたもの
mount ファイルシステムのマウントポイント制御
device ディスクデバイス
socket FIFO、UNIXドメインソケット、ポート番号などに関する通信資源

CentOS7に登録されているサービスのOS起動時の自動起動の有効化、
無効化の設定を確認するには、
ユニット「sevice」を指定し、更に「list-unit-files」を指定します。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl -t service list-unit-files
UNIT FILE STATE
abrt-ccpp.service enabled
abrt-oops.service enabled
abrt-pstoreoops.service disabled
abrt-vmcore.service enabled
abrt-xorg.service disabled
abrtd.service enabled
arp-ethers.service disabled

以下省略
-----------------------------------------------------------------

■サービスの登録状況確認
サービスの設定例として、WEBサービスの起動、停止、状態確認、
OS起動時の自動起動の有効化、無効化の設定を紹介します。

WEBサービスのがsystemdのユニットで
どのような名前で登録されているのかを確認します。
(例ではApacheがインストールされている環境を利用しています。)
-----------------------------------------------------------------
[root@Tiger ~]# systemctl -t service list-unit-files | grep -i httpd
httpd.service enabled
-----------------------------------------------------------------
WEBサーバーのサービスは「httpd.service」になります。
「httpd.serviceの右側に「enabled」と表示されています。
これはOS起動時に「httpd.service」が自動起動する
設定になっている事を意味します。
「disabled」だと自動起動しない設定という意味になります。

■サービスの状態確認
サービスの状態確認は、systemctlコマンドに「status」を指定します。
systemctlコマンドを利用する場合、サービス名の「.service 」は省略できます。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: active (running) since 水 2016-01-13 15:40:13 JST; 9min ago
Process: 1145 ExecStart=/usr/local/apache2/bin/apachectl start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/httpd.service
tq2114 /usr/local/apache2/bin/httpd -k start
tq2115 /usr/local/apache2/bin/rotatelogs /var/log/httpd/192.168.0.36_error_log_%Y%m%d ...
tq2116 /usr/local/apache2/bin/rotatelogs /var/log/httpd/192.168.0.36_access_log_%Y%m%d...
tq2117 /usr/local/apache2/bin/httpd -k start
tq2118 /usr/local/apache2/bin/httpd -k start
tq2119 /usr/local/apache2/bin/httpd -k start
tq2120 /usr/local/apache2/bin/httpd -k start
mq2121 /usr/local/apache2/bin/httpd -k start

1月 13 15:40:13 Tiger systemd[1]: Started The Apache HTTP Server.
-----------------------------------------------------------------
コマンドの実行結果「Active: active (running) 」となっており、
プロセスも正常起動していることから、Apacheサービスが正常に起動していることが分かります。


■サービスの起動と停止
Apacheを停止してみます。
停止は「systemctl stop httpd」で行えます。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl stop httpd
[root@Tiger ~]# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: inactive (dead) since 水 2016-01-13 15:52:20 JST; 4s ago
Process: 2384 ExecStop=/usr/local/apache2/bin/apachectl stop (code=exited, status=0/SUCCESS)
Process: 1145 ExecStart=/usr/local/apache2/bin/apachectl start (code=exited, status=0/SUCCESS)

1月 13 15:40:13 Tiger systemd[1]: Started The Apache HTTP Server.
1月 13 15:52:20 Tiger systemd[1]: Stopping The Apache HTTP Server...
1月 13 15:52:20 Tiger systemd[1]: Stopped The Apache HTTP Server.
-----------------------------------------------------------------
コマンドの実行結果が「Active: inactive (dead)」になっていることから
Apacheが停止していることが分かります。

因みに、起動は「systemctl start httpd」で行えます。


■起動時の自動実行、停止設定
CentOS7が起動した時に、Apacheサービスが自動的に起動するように設定します。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl enable httpd
ln -s '/usr/lib/systemd/system/httpd.service'
'/etc/systemd/system/multi-user.target.wants/httpd.service'
-----------------------------------------------------------------

自動起動を無効にする場合は、下記コマンドになります。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl disable httpd
rm '/etc/systemd/system/multi-user.target.wants/httpd.service'
-----------------------------------------------------------------
「enable」を「disable」に変更します。

CentOS7が起動した際、Apacheサービスが自動起動するように 設定されているか確認します。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl -t service is-enabled httpd
enabled
-----------------------------------------------------------------
機能 CentOS6 CentOS7
サービスの開始 # service httpd start # systemctl start httpd
サービスの停止 # service httpd stop # systemctl stop httpd
サービスの再起動 # service httpd restart # systemctl restart httpd
サービスの設定ファイル再読み込み # service httpd reload # systemctl reload httpd
サービスの状態確認 # service httpd status # systemctl status httpd
サービスが既に稼働している場合、サービスを再起動する # service httpd condrestart # systemctl condrestart httpd
次回OS起動時に自動的にサービスを起動する # chkconfig httpd on # systemctl enable httpd
次回OS起動時に自動的にサービスを起動しない # chkconfig httpd off # systemctl disable httpd
ランレベルごとに全サービスが有効・無効になっているかを表示する # chkconfig --list systemctl -t service list-unit-files または
# ls /etc/systemd/system/*.wants/
ランレベルごとに指定したサービスが有効・無効になっているかを表示する # chkconfig --list httpd # ls /etc/systemd/system/*.wants/httpd.service




P.S
CentOS7のサービス・デーモンの起動のもっと高い技術を身につけたいならこちら


<<関連記事>>
・MySQLで指定したカラム名を持つテーブルを検索する
・CentOS7のホスト名設定(nmcliコマンド)
・CentOS7のネットワーク管理
・CentOS7での日付、時刻、タイムゾーン設定
・CentOS7でのロケール、キーボード設定