Flaskアプリを引っ越す(2)
前のエントリは、/lib/systemd/system/bruschetta.service ファイルの書き方がわからない、というところで終わった。
Unit設定ファイル
その後、なんとなくではあるけど書けたので、とりあえずは動くようになった。参考になったページはここ。
cf. 第4回 Unit設定ファイルの記述方法 - ITPro
Unit設定ファイルというらしい。ともかく、このページを参考にして書いたのがこれ。
[Unit]
Description=Bruschetta service
After=network.target
[Service]
ExecStart=/etc/init.d/bruschetta start
ExecStop=/etc/init.d/bruschetta stop
Restart=always
Type=forking
PIDFile=/var/run/bruschetta.pid
このファイルから、/etc/systemd/system/bruschetta.service にリンクを張る。
bruschetta@wplj:~$ sudo ln -s /lib/systemd/system/bruschetta.service /etc/systemd/system/bruschetta.service
起動確認
で、起動。
bruschetta@wplj:~$ sudo service bruschetta start
やった!動いた!
start と stop を繰り返してみると、ちゃんと起動、停止する。今度は大丈夫そうだ。
ところが
Ubuntu 自体を再起動すると、サービスが動いていない。またもググッて調べた結果、systemctl enable コマンドを使えばいいらしい。
cf. Systemdを使ってさくっと自作コマンドをサービス化してみる - Qiita
bruschetta@wplj:~$ sudo systemctl enable bruschetta
[sudo] bruschetta のパスワード:
Synchronizing state of bruschetta.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable bruschetta
insserv: warning: script 'bruschetta' missing LSB tags and overrides
update-rc.d: error: bruschetta Default-Start contains no runlevels, aborting.
あれぇ?
更にググるとこのページを見つけた。
cf. Systemd入門(4) - serviceタイプUnitの設定ファイル - めもめも
/lib/systemd/system/bruschetta.service ファイルに [Install] セクションを付け足してみる。
[Unit]
Description=Bruschetta service
After=network.target
[Service]
ExecStart=/etc/init.d/bruschetta start
ExecStop=/etc/init.d/bruschetta stop
Restart=always
Type=forking
PIDFile=/var/run/bruschetta.pid
[Install]
WantedBy=multi-user.target
今度はどうだ。
bruschetta@wplj:~$ sudo systemctl enable bruschetta
Synchronizing state of bruschetta.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable bruschetta
insserv: warning: script 'K01bruschetta' missing LSB tags and overrides
insserv: warning: script 'bruschetta' missing LSB tags and overrides
update-rc.d: error: bruschetta Default-Start contains no runlevels, aborting.
ああダメだ。……というところで今日は時間切れ。
