今回の環境は、以下をインストールした状態となります。
httpd 2.2.31 のインストール は以下の記事を参照ください。
http://tech-wiki.pomme-verte.net/?p=5
systemdではなく、initによる起動スクリプトを使った自動起動設定は、以下を参照ください。
http://tech-wiki.pomme-verte.net/?p=23
systemdの設定
Unitファイルの作成
systemdでhttpdプロセスを制御するために、httpd用のUnitファイルを作成します。
[bash]
vi /usr/lib/systemd/system/httpd.service
[/bash]
Unitファイルの内容は、以下のような感じでいいと思います。
[bash] [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 [/bash]
systemdのリロード
Unitファイルを作成したら、systemdをリロードして読み込ませましょう。
[bash]
systemctl daemon-reload
[/bash]
確認
ここまでで、systemdコマンドを使ってhttpdの起動・停止・再起動ができるようになっているはずです。 確認してみましょう。
[bash]
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
(プロセスが起動していない) [/bash]
自動起動の設定
最後に、OSが起動時にhttpdが自動起動するように設定しておきます。
[bash]
systemctl list-unit-files | grep httpd
httpd.service disabled (自動起動の設定はdisabledになっている)
systemctl enable httpd
systemctl list-unit-files | grep httpd
httpd.service enabled (自動起動の設定はenabledになっている = 自動起動する) [/bash]
以上で、systemdでの自動起動設定は完了です。