¿Por qué falla la recarga de demonios de usuario?

¿Por qué falla la recarga de demonios de usuario?

Si lo hago:

sudo systemctl --user daemon-reload

Falla con:

Failed to connect to bus: No such file or directory

Siendo necesario el "sudo", ya que este pertenece a la instalación de un paquete.

Respuesta1

Con sudo, está ejecutando systemctl --usercomo root... pero si root no ha iniciado sesión en ese momento, no hay ninguna instancia D-Bus activa por usuario para root.

Sólo los usuarios que han iniciado sesión tienen en ejecución una instancia de D-Bus específica del usuario. Usar suo sudono necesariamente puede ser totalmente equivalente a un inicio de sesión real en este sentido particular. Si su distribución de Linux tiene el loginctlcomando, utilícelo sin ningún parámetro para ver qué usuarios tienen sesiones activas (en el sentido de que tienen una instancia D-Bus activa por usuario).

La --globalopción sólo tiene sentido con systemctl enableo systemctl disable.

Si desea ejecutar systemctl --user daemon-reloadtodas las sesiones de los usuarios actualmente activos, es posible que desee hacer algo como esto:

#!/bin/sh
for reloaduser in $(loginctl --no-legend list-users | awk '{print $2;}')
do
    sudo -u $reloaduser systemctl --user daemon-reload
done

información relacionada