systemdサービスが機能しなくなりました

systemdサービスが機能しなくなりました

実行可能ファイルがあり、secretservicedユーザーが次のものを作成できるようにしたい。ユーザーサービスから。この実行ファイルを入れて/usr/bin作成しました。単位file(secretserviced.service)を次のように入力して次の場所に置きます/etc/systemd/user

[Unit]
Description=Service to keep secrets of applications
Documentation=https://github.com/yousefvand/secret-service

[Install]
WantedBy=default.target

[Service]
Type=simple
RestartSec=30
Restart=always
Environment="MASTERPASSWORD=01234567890123456789012345678912"
WorkingDirectory=/usr/bin/
ExecStart=/usr/bin/secretserviced

その後、ユーザーは次のサービスを有効にして開始できます。systemctl enable --now --user secretserviced.service

この方法は数ヶ月前までは効果がありましたが、もう機能しません。

私の設定に問題がありますか?

ポリスチレン:私はArchlinuxを使います

答え1

正確な回答を得るには、次の出力が必要です。

systemctl status --user secretserviced.service

しかし、提供された情報によると、これが最善の推測です。


WorkingDirectory=/usr/bin/とてもユニークです。 aを指定する必要がある場合は、通常、WorkingDirectory=データ構造のルートを定義するか、プログラムが出力ファイルを生成する場所を定義します。 binはどちらの場合も機能しません。あなたのアプリケーションがあなたを書くことを試みていますが、/usr/binあなたのユーザーにそれをする権限がないようです。

この場合は、次のようにしてみてください。

  • WorkingDirectory=%hホームディレクトリに書き込むか
  • WorkingDirectory=%t一時ランタイムディレクトリに書き込むようにします。
  • WorkingDirectory=%h/path/to/data特定のデータツリーを使用するようにします。

「この実行可能ファイルを/usr/binに入れました。」

通常は.ifpacmanにのみインストールしてください/usr/bin。そこにあるすべてのファイルはpackageを返す必要がありますpacman -Qo <filename>。を手動でコピーまたは使用してインストールした場合は、make install通常はに入れる必要があります/usr/local/bin。これにより、ディストリビューションで管理するファイルと管理するファイルを簡単に確認できます。ファイルを直接インストールしたという事実を/usr/bin見ると、インストールに問題がある可能性があると思いました。

/usr/bin/secretservicedスペルが正しいことを確認し、実行可能としてマークします。実行可能でない場合sudo chmod w+x /usr/bin/secretserviced。これが実際に問題であればsystemd status --user secretserviced報告されますexit code 203

関連情報