GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo ejecuto un script antes que todo lo demás al apagar con systemd?

No es necesario crear ni editar archivos de servicio. Simplemente suelte su script

/usr/lib/systemd/system-shutdown/

https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html

Inmediatamente antes de ejecutar el sistema real halt/poweroff/reboot/kexec systemd-shutdown ejecutará todos los ejecutables en /usr/lib/systemd/system-shutdown/ y les pasará un argumento:"halt", "poweroff", "reboot " o "kexec", según la acción elegida. Todos los ejecutables en este directorio se ejecutan en paralelo, y la ejecución de la acción no continúa hasta que finalizan todos los ejecutables.

Lo uso simplemente para emitir un pitido en el altavoz de la PC.


¡Lo tengo!

Tome la solución Proceso de ejecución prolongada con StopExec y modifíquelo así:

autobackup.servicio:

[Unit]
Description=Slow backup script
RequiresMountsFor=/mnt/BACKUP /home

[Service]
ExecStop=/etc/systemd/system/do_backup.sh
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Tenga en cuenta la línea:

RequiresMountsFor=/mnt/BACKUP /home

Funciona como se esperaba de esta manera.


Linux
  1. ¿Cómo escribir un script de inicio para Systemd?

  2. Linux:¿cómo obtener menos Ttys con Systemd?

  3. Linux:¿ejecutar script cada 30 minutos con Systemd?

  4. ¿Cómo ejecutar parte de un script con privilegios reducidos?

  5. ¿Cómo ejecutar un script con systemd justo antes de apagar?

Cómo ejecutar contenedores como servicio Systemd con Podman

Cómo ejecutar Shell Script como servicio Systemd en Linux

Cómo ejecutar pods como servicios systemd con Podman

Cómo configurar la ejecución automática de un script de Python usando Systemd

Cómo ejecutar Shell Script como servicio SystemD en Linux

Cómo ejecutar un script Bash