実行可能ファイルがあり、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
。