私がするなら:
sudo systemctl --user daemon-reload
次のように失敗します。
Failed to connect to bus: No such file or directory
パッケージのインストールなので「sudo」が必要です。
答え1
を使用すると、rootとして実行されsudo
ますsystemctl --user
。ただし、ルートがその時点でログインしていない場合、ルートにはアクティブなユーザー固有のD-Busインスタンスはありません。
実際にログインしたユーザーだけがユーザー固有のD-Busインスタンスを実行します。この特別な意味でsu
orを使用することは、sudo
必ずしも実際のログインと同じではありません。 Linuxディストリビューションにこのloginctl
コマンドがある場合は、パラメータなしでコマンドを使用して、アクティブなセッションを持つユーザーを確認します(アクティブなユーザー固有のD-Busインスタンスがあることを意味します)。
この--global
オプションはsystemctl enable
またはにのみ適用されますsystemctl disable
。
現在アクティブなユーザーのすべてのセッションで実行するには、systemctl --user daemon-reload
次の操作を実行できます。
#!/bin/sh
for reloaduser in $(loginctl --no-legend list-users | awk '{print $2;}')
do
sudo -u $reloaduser systemctl --user daemon-reload
done