Per i sistemi più recenti con systemd questo è stato risolto da systemd-inhibit
. Esempio di utilizzo:
systemd-inhibit --why="Doing weekly backup" bash my-backups.sh
Quindi, se un utente tenta di arrestarlo, non sarà consentito a meno che non sia forzato.
❯ systemctl poweroff
Operation inhibited by "bash my-backups.sh" (PID 2414 "systemd-inhibit", user ntrrgc),
reason is "Doing weekly backup".
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl poweroff -i'.
Esegui which shutdown
per vedere dove si trova il percorso del programma di spegnimento. Puoi rinominare il file, anche se ti sconsiglio.
Un altro metodo (più sicuro). Usa un alias:alias shutdown=' '
Qualcosa di simile è più reversibile. Se stai cercando di impedire l'arresto a tutti gli utenti, aggiungi l'alias a livello globale.
Disabilita i comandi simili a "shutdown/reboot/poweroff/halt/hostname" nei server mission-critical
chmod 0 /sbin/shutdown
quindi se hai bisogno di usarlo, modificalo di nuovo in chmod 0755
.