4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

systemdによるサービス作成(Ubuntu起動時処理)

Last updated at Posted at 2023-10-28

はじめに

raspi起動時にFastAPIを立ち上げるにあたって、
Ubuntuのサービス作成で詰まった。
メモ的だが、色々と手順をつらつら。

使った環境

  • Description: Ubuntu 22.04.3 LTS
  • RaspberryPi 4B

Step.1 起動方法選択

ubuntuで取りうる手段は3つ。・・・rc.local、init.d、systemd
⇒今回はsystemdを選択

Step.2 shellファイルを準備

ワンライナーでpyファイル実行まで書く

/home/ubuntu/python/homeAPI/start.sh
cd /home/ubuntu/python/homeAPI; python3 main.py

shellファイルに実行権限を付与する

bash
chmod +x /home/ubuntu/python/homeAPI/start.sh

Step.3 Serviceファイル作成

/etc/systemd/system/bootstrap.service
[Unit]
Description=bootstrap service
After=network.target

[Service]
User=ubuntu
ExecStart=/bin/sh /home/ubuntu/python/homeAPI/start.sh
Restart=no
Type=simple

[Install]
WantedBy=multi-user.target

単にshellファイル作成ではNG。ExecStart=/bin/sh hoge.shで書かないと動かず。IoTなどネットワーク前提のServiceの場合は、After=network-online.targetにする。(ネットワーク疎通できてないのにService起動してしまい、ハマった)

Step.4 Service確認

サービス開始、サービスステータスを確認

bash
sudo systemctl daemon-reload
sudo systemctl start bootstrap
sudo systemctl status bootstrap.service

コンソール出力(正常時)

bash
● bootstrap.service - bootstrap  service
     Loaded: loaded (/etc/systemd/system/bootstrap.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2023-10-28 11:01:27 UTC; 24min ago
   Main PID: 717 (sh)
      Tasks: 3 (limit: 4416)
     Memory: 57.5M
        CPU: 9.415s
     CGroup: /system.slice/bootstrap.service
             ├─717 /bin/sh /home/ubuntu/python/homeAPI/start.sh
             └─742 python3 main.py
 #以下省略

失敗時はsyslogを確認。ログが長いのでタイムスタンプで探すと良い。

bash
less /var/log/syslog

失敗例:/bin/shを忘れていたり、実行権限が無いなど。

Step.5 Serviceを登録

無事サービスの開始が確認出来たら、サービスを登録する。
解除時はdisable。

bash
sudo systemctl enable bootstrap

最後に

簡潔にまとまった。これは・・・覚えてられない。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?