systemctl --user
組織を管理するにはルートが必要です。
これでuser1
systemdユーザーユニットを設定しました。ユーザーが端末やGUI、SSH経由で直接ログインすれば、すべてのsystemctl --user
命令を実行することができる。
ユーザーがログインしている間は、rootとして次のコマンドを実行し、systemctl --user
問題なくそのユーザーに対してすべてのコマンドを実行できます。
su - user1 -c "systemctl --user status myunit.service"
ただし、ユーザーがログアウトすると、systemctl --user
rootを含む誰もそのユーザーとしてコマンドを実行できません。ずっと手に入れる
Failed to connect to bus: No such file or directory
ルートとして実行してもsudo - user1
十分ではなく、同じエラーが発生します。ユーザーの組織を管理するには、ユーザーが実際にログインする必要があります。
明らかに、これは既知の「問題」です(システムが設計どおりに機能するときに参照されます)。
メモ:sで環境変数を設定しようとしましたが、XDG_RUNTIME_DIR
役に立ちませんでした。user1
bashrc
他のユーザーが解決策を見つけたようですが、うまくいきません。開発者は自分自身を承認していないようです。アイデア。
私が見つけた唯一の回避策は、ユーザーアカウントにSSHでアクセスし、公開鍵で認証し、次のコマンドを実行することです。
ssh user1@localhost -f 'systemctl --user status myunit.service'
SSH接続を必要としない回避策を探しています。ユーザーがログインしていない場合、システムのユーザー単位を管理するにはrootが必要です。どうやってこれを達成できますか?
ベストアンサー1
システム248-M username@
(2021年3月リリース)他のユーザーを指定するための構文サポートが導入されました。
$ sudo systemctl --user -M user1@ status myunit.service
参照: ドキュメントに記載されている新機能情報
(このソリューションは動作するために実行する必要はありませんloginctl enable-linger user1
)