2014-12-29 14 views
0

У меня есть сценарий резервного копирования, который выполняет команду poweroff для выключения моей машины после завершения всех резервных копий. Однако бывает так, что я хочу отрицать poweroff, но не убивая процесс скрипта, так как это повредит мою резервную копию и оставит плохой беспорядок.Как отказать в выключении, не убивая запущенный скрипт, который его выполнит?

Как я могу заставить poweroff не выполняться без приостановки или убийства скрипта?

Вот мой сценарий:

#!/bin/bash 
/unfa/Scripts/Daily\ backup/backup.sh > ~/backup-unfa.log; echo "data thread finished" & 
/mnt/system-backup/system-backup.sh > ~/backup-system.log; echo "system thread finished" & 

sleep 1m 
while [[ -n $(pgrep rdiff-backup) ]] 
do echo "Backing up yo data, dude..."; sleep 3s 
done 
echo "POWER OFF" 
poweroff 

ответ

1

Скрипт выполнит команду POWEROFF. Если вы хотите, чтобы это произошло, вы можете временно изменить права доступа/sbin/poweroff, чтобы он не был выполнен.

Во-первых, стать корнем, чтобы получить полный доступ к защищенным системным файлам:

sudo su 

Теперь удалите «исполняемым» разрешение от POWEROFF двоичном:

chmod -x /sbin/poweroff 

После того как сценарий закончен запомнить чтобы отменить это изменение, так как иначе вы останетесь с нерабочей командой отключения:

chmod +x /sbin/poweroff 

Протестировано, хорошо работает.