Tengo una máquina Fedora 23.
Tengo un guión bash de sincronización de directorio / archivo que sincroniza mi directorio local / de inicio con un directorio remoto (en una máquina NAS). Lo ejecuto manualmente pero me gustaría crear un servicio systemd y hacerlo más flexible, ya que otras personas usan mi PC con sus propias credenciales de usuario, me gustaría saber cuándo un usuario está conectado e iniciar mi servicio después.
¿Hay algo que pueda hacer desde el archivo systemd de mi servicio o tendré que verificarlo desde mi código en el script?
Solo necesito asegurarme de tener acceso a las variables de entorno (como $ USER) y ejecutarlo como un servicio.
Mi principal fuente de documentación es este enlace https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html
systemctl --user
Funciona en F23?76 loaded units listed
..bashrc
el inicio de sesión, luego escucha la señal de cierre de sesión de Gnome y se apaga.Respuestas:
Utilice systemd , ya incluye soporte para sesiones de usuario, de hecho, ya debería depender de él (sin darse cuenta).
Crea el directorio de servicios
Crear, editar un archivo de servicio (vim, gedit, geany, lo que quieras)
Debería verse más o menos así, si se trata de un servicio permanente.
Pero parece que prefieres activarlo una vez, luego ser bueno con él, así que mejor usa una configuración de un disparo como esta:
Por supuesto, esto supone que su script es ejecutable, es decir:
De lo contrario, deberá anteponer la ruta al intérprete respectivo:
Ahora vuelva a cargar systemd (y vuelva a iniciar sesión para probar)
Si necesita más información, consulte Arch-Wiki, por ejemplo. Este hilo de askubuntu tiene varias ideas, incluida la mía.
Puede extender el comportamiento (si es root) a otros usuarios definiendo el servicio globalmente. Para hacer esto, necesitaría crear el archivo de servicio en / usr / share / systemd / user / not en $ HOME / .local / share / systemd / user .
fuente
Sé esto hace algunos años, pero la respuesta de ans simplemente me ayudó. Entonces, supongo que todavía es relevante. Además, esto es más un comentario, pero no tengo ese privilegio, así que lo publico como una "respuesta". De todos modos...
Al ejecutar Linux Mint 19, no pude "habilitar" el servicio cuando el script estaba ubicado en '$ HOME / .local / share / systemd / user'. Intentar hacerlo siempre resultó en un error. Sin embargo, podría iniciarlo bien desde el directorio '$ HOME / .local / share / systemd / user'. Después de mover el script a '/ usr / share / systemd / user /', systemd me permitió habilitarlo sin problemas.
fuente