ファイルにsystemd(v241)用にこのデバイスを作成しました。/etc/systemd/user/foo.service
[Unit]
Description=Foo
After=mysqld.service
[Service]
Type=simple
Restart=always
RestartSec=1
StandardOutput=append:/home/pioz/foo/logs/backend.log
StandardError=append:/home/pioz/foo/logs/backend.log
WorkingDirectory=/home/pioz/foo
ExecStart=/home/pioz/foo/backend/current/foo
[Install]
WantedBy=multi-user.target
systemd --user start foo
(使用しない)でサービスを開始すると、sudo
次のエラーが発生します。
foo.service: Failed to set up standard output: Permission denied
StandardOutput
オプションとユニットファイルへのStandardError
コメントをしようとすると、サービスが正しく開始されます。
pioz
ユーザー(通常のLinuxユーザー)としてサービスを実行します。ファイルは/home/pioz/foo/logs/backend.log
ユーザーpioz
が書き込むことができ、実際にnanoを使用してファイルを編集できます。
この権限拒否エラーを解決するには?
答え1
一般ユーザーとしてサービスを実行するには、.serviceファイルを適切な$HOME/.config/systemd/user
ディレクトリに移動します(もちろん、権限を確認してください)。次に、次のようにサービスを実行します。
systemctl --user start foo.service