Primeiramente - pare de desligar com o root. Use dbus
.
Em seguida, coloque algo no seu script que detecte torrents em execução. Aqui está uma coisinha que usa trasmission-remote
para contar o número de torrents em execução que não foram "Concluídos":
transmission-remote --list | sed '1d;$d' | grep -v Done | wc -l
Para criar isso no seu script:
count=$(transmission-remote --list | sed '1d;$d' | grep -v Done | wc -l)
if [ $count -eq 0 ]; then
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
fi
Eu não sou um usuário de transmissão, então minha pesquisa pode estar um pouco fora, mas isso deve funcionar. Você pode descobrir que ele não é desligado o tempo todo se houver alguns torrents lá, por exemplo, pausados. Se for esse o caso, brinque com a saída e uma cláusula grep -v
ou duas para lidar com as coisas.
Além disso, você pode querer um desligamento programado para que nunca fique em uma situação em que a área de trabalho desligue enquanto estiver nela (para abortá-la). Talvez apenas um cheque adicional para ver qual é a hora.
Observação: transmission-remote
exige que você ative o acesso à Web para transmissão de dentro de suas opções.