- blogs:
- cles::blog
2020/12/25

pipenv で作ったプログラムを systemd でデーモン化する


pipenv を使っで作った Python のプログラムを Systemd でデーモン化してみました。
基本的には /etc/systemd/system/ ディレクトリに .service ファイルを作って、起動すれば OK ということになりますが、問題は ExecStart の部分をどのようにするかということでしょうか。この部分を書くためには pipenv の場所などを調べる必要があるのですが、いちいちあれこれ悩まなくて済むように、.service ファイルの生成スクリプトを作ってみました。
(daeon.py の部分は自分のスクリプト名に合わせて書き換えてください。)
cat <<EOF >"$(basename $(pwd dirname)).service"
[Unit]
Description=Python Daemon With Pipenv
After=network.target
[Service]
Type=simple
Restart=always
WorkingDirectory=`pwd`
ExecStart=`pipenv run which pipenv` run python daeon.py
User=`whoami`
Group=`groups | cut -d ' ' -f 1`
[Install]
WantedBy=multi-user.target
EOF
あとは .service ファイルにシンボリックリンクを張って、daemon を有効化してやれば OK。
慣れてくれば init.d と同じように簡単にデーモン化できますね。
sudo ln -s "$(basename $(pwd dirname)).service" /etc/systemd/system/
sudo sysetmctl daemon-reload
sudo sysetmctl enable "$(basename $(pwd dirname)).service"
sudo sysetmctl start "$(basename $(pwd dirname)).service"
systemctl | grep "$(basename $(pwd dirname)).service"
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/12191
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(111992)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110622)
3 . 年次の人間ドックへ(110253)
4 . 2023 年分の確定申告完了!(1つめ)(109799)
5 . 三菱鉛筆がラミーを買収(109697)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110622)
3 . 年次の人間ドックへ(110253)
4 . 2023 年分の確定申告完了!(1つめ)(109799)
5 . 三菱鉛筆がラミーを買収(109697)
cles::blogについて
Referrers