HOME > Linux技術 リナックスマスター.JP(Linuxマスター.JP) > Linuxtips > CentOS7, Linuxtips, LinuxコマンドP-T, サーバー管理, システム管理, システム管理コマンド > CentOS7のサービス・デーモンの起動
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でのロケール、キーボード設定