CentOS7 では、SystemD を使用してサービスの自動起動を実現することができます。
SystemD は System Daemon の略で、Linux 上の一種の init ソフトウェアです。その開発目標は、システムサービス間の依存関係を表現するためのより優れたフレームワークを提供し、システムの初期化時にサービスの並列起動を実現し、同時にシェルのシステムオーバーヘッドを低減することです。
ここでは、以下のステップでサービスを起動することを想定しています。
# /usr/share/autostartup/foobar.sh
STEP1. SystemD で管理するための.service ファイルを作成します。
/usr/share/autostartup/foobar.service
以下はテスト用の.service ファイルであり、.service ファイルの具体的な記述方法については、systemd の関連ドキュメントを参照してください。
[Unit]
Description=foobar
Documentation=http://www.doc.com/doc.html
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/foobar
ExecStart=/usr/share/autostartup/foobar.sh
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=foobar
User=foobar
Group=foobar
Environment=
[Install]
WantedBy=multi-user.target
STEP2. 作成した.service ファイルを `/usr/lib/systemd/` の指定のディレクトリに移動します。ここではシステム起動時に実行する必要があるため、`/usr/lib/systemd/system/` に移動します。
cp /usr/share/autostartup/foobar.service /usr/lib/systemd/system/foobar.service
STEP3. 対応するサービスの設定と起動
# systemd の設定を再読み込み
systemctl daemon-reload
サービスを起動時に自動起動するように設定#
systemctl enable foobar.service
サービスを開始#
systemctl start foobar.service
サービスを停止#
systemctl stop foobar.service