GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguo uno script prima di tutto il resto all'arresto con systemd?

Non è necessario creare o modificare file di servizio. Inserisci semplicemente il tuo script

/usr/lib/systemd/system-shutdown/

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

Immediatamente prima di eseguire l'effettivo sistema halt/poweroff/reboot/kexec systemd-shutdown eseguirà tutti gli eseguibili in /usr/lib/systemd/system-shutdown/ e passerà loro un argomento:"halt", "poweroff", "reboot " o "kexec", a seconda dell'azione scelta. Tutti gli eseguibili in questa directory vengono eseguiti in parallelo e l'esecuzione dell'azione non viene continuata prima che tutti gli eseguibili siano terminati.

Lo uso semplicemente per emettere un segnale acustico all'altoparlante del PC.


Ho capito!

Prendi la soluzione Processo a esecuzione prolungata con StopExec e modificalo in questo modo:

autobackup.service:

[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

Nota la riga:

RequiresMountsFor=/mnt/BACKUP /home

Funziona come previsto in questo modo.


Linux
  1. Linux:come eseguire uno script con Systemd subito prima dell'arresto?

  2. Linux:come ottenere meno Tty con Systemd?

  3. Linux:esegui script ogni 30 minuti con Systemd?

  4. Come eseguire lo script Python come servizio?

  5. Come interrompere il servizio systemd

Come eseguire container come servizio Systemd con Podman

Come eseguire lo script della shell come servizio Systemd in Linux

Come eseguire i pod come servizi di sistema con Podman

Come configurare l'esecuzione automatica di uno script Python utilizzando Systemd

Come eseguire lo script della shell come servizio SystemD in Linux

Come eseguire uno script Bash