Utilizo un script para hacer copias de seguridad incrementales de una partición btrfs de un disco a otro.
El script lo inicia cron.weekly a una hora aleatoria de un día.
Si apago el sistema mientras se ejecuta el script, me estoy metiendo en problemas con las copias de seguridad antiguas eliminadas y las nuevas no creadas.
¿Hay alguna manera de configurar el sistema para que espere hasta que finalice el script?
Estoy usando Ubuntu 16.04 con systemd.
sudo
usuario. Voy a vincular una respuesta anterior para GUI. Avíseme si desea personalizarlo para satisfacer sus necesidadessystemd-inhibit
un poco más fácil a la vista? >: - DRespuestas:
Para Ubuntu 16.04+ con systemd (el valor predeterminado).
===
Prueba:
===
Hay 7 cerraduras :
sleep
inhibe la suspensión del sistema y la hibernación solicitada por usuarios (no privilegiados)shutdown
inhibe el apagado del sistema de alto nivel y el reinicio solicitado por los usuarios (sin privilegios)idle
inhibe que el sistema entre en modo inactivo, posiblemente resultando en la suspensión o apagado automático del sistema según la configuraciónhandle-power-key
inhibe el manejo de bajo nivel (es decir, logind-internal) de la llave de hardware del sistema, permitiendo que el código externo (posiblemente sin privilegios) maneje el evento en su lugar.handle-suspend-key
inhibe el manejo de bajo nivel de la clave de suspensión del hardware del sistema.handle-hibernate-key
inhibe el manejo de bajo nivel de la clave de hibernación del hardware del sistema.handle-lid-switch
inhibe el manejo de bajo nivel del interruptor de la tapa del hardware del sistema.Probablemente también quieras prevenir
suspend
,idle
yhibernate
.Ejemplo usando "administrador de paquetes" :
De manera similar, puede codificar su versión y agregar un "apagado" al final de este script (o agregar una forma de determinar que un apagado debe ser la siguiente acción).
fuente
En BackInTime estoy usando un par de métodos DBus diferentes para trabajar en todos los DE principales. El único inconveniente es que esto no funcionará
root
porqueroot
no tienedbus.SessionBus
.fuente