systemctlにサービスを追加する

サーバ入れ替えでLinuxディストリビューションがRHEL7に。サーバが起動するときに立ち上がってほしいサービスは以前は/etc/rc2.dとかそのあたりにスクリプトを書いていたんですが、RHEL7からはsystemctl経由でやるみたい。
新規サービス(例えばソースから入れたapacheを上げる)を起動時にあげたいときの手順をメモ。

/usr/lib/systemd/system 以下へ起動サービスに関する記述を追加

ソースから入れたapache(/usr/local/apache2以下へインストール)を起動したい場合は、/usr/lib/systemd/system/apache2.servieというファイルを作成して、内容に以下。

[Unit]
Description=The Apache HTTP Server (/usr/local/apache2)
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)

[Service]
Type=forking
ExecStart=/usr/local/apache2/bin/apachectl start
ExecReload=/usr/local/apache2/bin/apachectl restart
ExecStop=/usr/local/apache2/bin/apachectl stop
# We want systemd to give httpd some time to finish gracefully, but still want
# it to kill httpd after TimeoutStopSec if something went wrong during the
# graceful stop. Normally, Systemd sends SIGTERM signal right after the
# ExecStop, which would kill httpd. We are sending useless SIGCONT here to give
# httpd time to finish.
KillSignal=SIGCONT
PrivateTmp=true

[Install]
WantedBy=multi-user.target

systemctlでenableする

自動起動をonにする場合は以下。

# systemctl enable apache2