Pour les systèmes plus récents avec systemd, cela a été résolu par systemd-inhibit
. Exemple d'utilisation :
systemd-inhibit --why="Doing weekly backup" bash my-backups.sh
Ensuite, si un utilisateur tente de fermer, il ne sera pas autorisé à moins qu'il ne soit forcé.
❯ 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'.
Exécutez which shutdown
pour voir où se trouve le chemin d'accès au programme d'arrêt. Vous pouvez renommer le fichier, bien que je le déconseille.
Une autre méthode (plus sûre). Utiliser un alias :alias shutdown=' '
Quelque chose comme ça est plus réversible. Si vous essayez d'empêcher l'arrêt de tous les utilisateurs, ajoutez l'alias globalement.
Désactivez les commandes "shutdown/reboot/poweroff/halt/hostname" sur les serveurs critiques
chmod 0 /sbin/shutdown
puis si vous avez besoin de l'utiliser, chmodez-le à chmod 0755
.