¿Cuál es la forma más sencilla de desactivar o suspender temporalmente el reinicio/apagado cuando se está ejecutando un proceso importante? El proceso tarda demasiado en finalizar y no se puede pausar/reanudar, por lo que prefiero evitar apagar la PC mientras se está ejecutando. Se ejecuta desde cron, por lo que, a menos que verifique manualmente los procesos en ejecución, no sabría que se está ejecutando. Gracias.
Respuesta1
Para sistemas más nuevos con systemd, esto se ha resuelto con systemd-inhibit
. Ejemplo de uso:
systemd-inhibit --why="Doing weekly backup" bash my-backups.sh
Luego, si un usuario intenta apagarlo, no se le permitirá a menos que lo fuerce.
❯ 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'.
Respuesta2
Ejecute which shutdown
para ver dónde está la ruta al programa de apagado. Puede cambiar el nombre del archivo, aunque no lo recomiendo.
Otro método (más seguro). Utilice un alias: alias shutdown=' '
algo como esto es más reversible. Si está intentando evitar el cierre de todos los usuarios, agregue el alias globalmente.
Respuesta3
Deshabilite los comandos similares a "apagar/reiniciar/apagar/detener/nombre de host" en servidores de misión crítica
chmod 0 /sbin/shutdown
luego, si necesita usarlo, vuelva a modificarlo a chmod 0755
.
Respuesta4
Quería evitar que un usuario local apagara una computadora portátil durante una actualización. Deshabilitar el dispositivo de entrada fue la mejor manera de hacerlo. Para mí fue suficiente desactivar el mouse, pero el teclado también se puede desactivar.
Por supuesto, hay un inconveniente: el ordenador no se puede utilizar durante este período.