GNU/Linux >> Linux Esercitazione >  >> Linux

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

Cosa devo inserire in [install] sezione, in modo che systemd esegua /home/me/so.pl subito prima dello spegnimento e anche prima di /proc/self/net/dev viene distrutto?

[Unit]
Description=Log Traffic

[Service]
ExecStart=/home/me/so.pl

[Install]
?

Risposta accettata:

La soluzione suggerita è eseguire l'unità di servizio come un normale servizio:dai un'occhiata a [Install] sezione. Quindi tutto deve essere pensato al contrario, anche le dipendenze. Perché l'ordine di arresto è l'ordine di avvio inverso. Ecco perché lo script deve essere inserito in ExecStop= .

La seguente soluzione funziona per me:

[Unit]
Description=...

[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=<your script/program>

[Install]
WantedBy=multi-user.target

RemainAfterExit=true è necessario quando non si dispone di un ExecStart azione.

Dopo aver creato il file, assicurati di systemctl daemon-reload e systemctl enable yourservice --now .

L'ho appena ricevuto da systemd IRC, i crediti andranno a mezcalero.


Linux
  1. Linux – Come eseguire uno script sul blocco/sblocco dello schermo?

  2. Linux:come ottenere meno Tty con Systemd?

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

  4. Come aggiungere shebang #! con script php su Linux?

  5. Come eseguire uno script con systemd subito prima dell'arresto?

Come eseguire il comando / script della shell di Linux in background

Come eseguire il software Windows su Linux con Bottles

Come eseguire lo script della shell come servizio Systemd in Linux

Come eseguire i pod come servizi di sistema con Podman

Come eseguire lo script della shell come servizio SystemD in Linux

Come eseguire un alias con Sudo in Linux