
Systemdでウェブアプリをデーモン化して永続化する最良な方法
Systemdでウェブアプリをデーモン化して永続化する最良な方法
ウェブアプリをデーモン化したい
PythonのアプリをAWSのEC2にあげて、
python app.py とかでアプリをあげるけど、
それを永続化してデーモン化して仮に落ちても
自動で再起動するようなことをしたかった。
Pythonアプリじゃなくても全然大丈夫
場所
$ cd /etc/systemd/system
$ vi app.service
etc/systemd/systemにコードを書く
[Unit]
Description=App
[Service]
ExecStart=/bin/bash -c '/usr/bin/python3 /home/ubuntu/アプリ/app.py'
WorkingDirectory=/home/ubuntu/アプリ/
Restart=always
Type=simple
User=ubuntu
[Install]
WantedBy=multi-user.target
ポイント
ここで、
プロセスが落ちても自動で再起動をするようになる
Restart=always
実行
$ sudo systemctl list-unit-files --type=service | grep app
$ sudo systemctl daemon-reload
$ sudo systemctl start app.service
$ sudo systemctl status app.service
詰まったこと
こちらのサイトを参考に一回してみたのですが、
コード足らずで動かなったのと、
権限足らずで動きませんでした。
権限で動かなければ sudo chmod 777 とかで権限最高解放すれば絶対に権限の問題は解決します