Pregunta El servicio de usuario de Systemd no se ejecuta automáticamente al iniciar sesión.


Tengo a Debian Jessie y me conecto a ella por ssh. Quiero iniciar automáticamente el comando de shell en el inicio de sesión del usuario mediante systemd.

He creado un servicio systemd simple ~/.config/systemd/user/foo.service bruja contiene:

[Unit]
Description=Systemd autostart test
Wants=local-fs.target
After=local-fs.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo 123 >> /home/user/there;"

[Install]
WantedBy=multi-user.target

Lo he habilitado por systemctl

systemctl --user enable foo

He creado el contenedor de mensajes de éxito

touch ~/there

y después de reiniciar e iniciar sesión (por ssh) ~/there archivo está vacío.

Cuando lo uso manualmente

systemctl --user restart foo

funciona.

¿Qué me estoy perdiendo?


6
2017-11-28 09:11


origen


systemd normalmente no permite a los usuarios ordinarios iniciar los servicios del sistema. ¿Por qué no usar .profile ? - Froggiz


Respuestas:


De forma predeterminada, los usuarios no pueden configurar los servicios de usuario para que se ejecuten en el momento del arranque. El administrador debe habilitar esto de forma individual para cada usuario.

sudo loginctl enable-linger <username>

Desde el documentación:

Habilitar / deshabilitar la persistencia de usuarios para uno o más usuarios. Si se habilita para un usuario específico, se genera un administrador de usuarios para el usuario en el inicio y se mantiene después de cerrar la sesión. Esto permite a los usuarios que no han iniciado sesión ejecutar servicios de larga duración. Toma uno o más nombres de usuario o UID numéricos como argumento. Si no se especifica ningún argumento, habilita / deshabilita la persistencia para el usuario de la sesión del llamante.

Usted también necesita establece el objetivo correcto para WantedBy = como Climenty explicó en otra respuesta. los multi-user.target no existe para servicios de usuario; por defecto solo hay default.target.

[Install]
WantedBy=default.target

3
2017-09-10 19:00





Prueba esto

[Install]    
WantedBy=default.target

1
2017-09-10 15:51