ユーザ権限でsystemedのサービスを稼働させる
ラズパイでシステム起動時に自作アプリケーションを動作させるため、ユーザ権限でsystemdのサービスを稼働させるやり方です。
ユニットファイルの雛形
例えばサービス名が foobar だとすると、ユニットファイルのファイル名は ~/.config/systemd/user/foobar.service となります。
ディレクトリはなければ自分で作成します。
[Unit]
Description=foobar service
[Service]
ExecStart=起動コマンド
ExecStop=停止コマンド
Restart=always
[Install]
WantedBy=default.target
サービスを登録
systemctl --user enable foobar
サービスの起動・終了
“–user" を追加する以外は通常の systemctl の操作と同じ。
systemctl --user start foobar
systemctl --user stop foobar
システム起動時に自動起動
システム起動時に自動起動するためにもうひと手間必要。
sudo loginctl enable-linger ユーザー名
参考サイト
ユーザー権限で systemd のサービスを稼働させる方法 – pyopyopyo – Linuxとかプログラミングの覚え書き
サーバー起動時に非rootユーザーでsystemdを使ってサービスを立ち上げる – Qiita