自動起動設定(systemd)

今回の環境は、以下をインストールした状態となります。

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での自動起動設定は完了です。