今回の環境は、以下をインストールした状態となります。
- CentOS 7.3.1611
- httpd 2.2.31
- apr 1.5.2
- apr-util 1.5.4
- pcre 8.39
httpd 2.2.31 のインストール は以下の記事を参照ください。
環境
今回、インストールを行った環境は、以下の通りです。
OS:CentOS 6.7
インストールするものは、以下です。
...
systemdではなく、initによる起動スクリプトを使った自動起動設定は、以下を参照ください。
環境
今回の環境は、以下をインストールした状態となります。
OS:CentOS 6.7
httpd:2.2.31
a...
systemdの設定
Unitファイルの作成
systemdでhttpdプロセスを制御するために、httpd用のUnitファイルを作成します。
# vi /usr/lib/systemd/system/httpd.service
Unitファイルの内容は、以下のような感じでいいと思います。
[Unit] Description=The Apache HTTP Server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/apache2/bin/apachectl -k start ExecReload=/usr/local/apache2/bin/apachectl -k graceful ExecStop=/usr/local/apache2/bin/apachectl -k stop PrivateTmp=true [Install] WantedBy=multi-user.target
systemdのリロード
Unitファイルを作成したら、systemdをリロードして読み込ませましょう。
# systemctl daemon-reload
確認
ここまでで、systemdコマンドを使ってhttpdの起動・停止・再起動ができるようになっているはずです。
確認してみましょう。
# systemctl start httpd # ps -ef | grep httpd | grep -v grep root 13616 1 0 13:22 ? 00:00:00 /usr/local/apache-2.2.31/bin/httpd -k start apache 13617 13616 0 13:22 ? 00:00:00 /usr/local/apache-2.2.31/bin/httpd -k start apache 13618 13616 0 13:22 ? 00:00:00 /usr/local/apache-2.2.31/bin/httpd -k start apache 13619 13616 0 13:22 ? 00:00:00 /usr/local/apache-2.2.31/bin/httpd -k start apache 13620 13616 0 13:22 ? 00:00:00 /usr/local/apache-2.2.31/bin/httpd -k start apache 13621 13616 0 13:22 ? 00:00:00 /usr/local/apache-2.2.31/bin/httpd -k start # systemctl restart httpd # ps -ef | grep httpd | grep -v grep root 13641 1 0 13:23 ? 00:00:00 /usr/local/apache-2.2.31/bin/httpd -k start apache 13642 13641 0 13:23 ? 00:00:00 /usr/local/apache-2.2.31/bin/httpd -k start apache 13643 13641 0 13:23 ? 00:00:00 /usr/local/apache-2.2.31/bin/httpd -k start apache 13644 13641 0 13:23 ? 00:00:00 /usr/local/apache-2.2.31/bin/httpd -k start apache 13645 13641 0 13:23 ? 00:00:00 /usr/local/apache-2.2.31/bin/httpd -k start apache 13646 13641 0 13:23 ? 00:00:00 /usr/local/apache-2.2.31/bin/httpd -k start (PIDが変わっているので、プロセスが再起動している) # systemctl stop httpd # ps -ef | grep http | grep -v grep (プロセスが起動していない)
自動起動の設定
最後に、OSが起動時にhttpdが自動起動するように設定しておきます。
# systemctl list-unit-files | grep httpd httpd.service disabled (自動起動の設定はdisabledになっている) # systemctl enable httpd # systemctl list-unit-files | grep httpd httpd.service enabled (自動起動の設定はenabledになっている = 自動起動する)
以上で、systemdでの自動起動設定は完了です。