ユーザーデーモンの再ロードが失敗するのはなぜですか? [コピー]

ユーザーデーモンの再ロードが失敗するのはなぜですか? [コピー]

私がするなら:

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インスタンスを実行します。この特別な意味でsuorを使用することは、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

おすすめ記事