Visto che il software allegato all’ ups usa tomcat ed è pesantissimo ho deciso di scrivere un piccolo script per spegnere la macchimna quando il router non è presente, perchè non alimentato dall’ ups.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#!/bin/bash while true do spegni=0 #tempo fra un ping e l'altro sleep 60 # numero di tentativi se il ping fallisce while [ "$spegni" -le "3" ] do #indirizzo ip del router if ping -c 1 192.168.1.1 1>/dev/null 2>&1 then break else spegni=$[$spegni+1] #tempo fra i tentativi sleep 4 fi done if (( "$spegni" > 3 )) then xmessage -timeout 5 -center -buttons spegni,continua Spegnere? if [ "$?" -le "101" ] then xmessage -center spegnimento & dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" \ /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop fi fi done |
Questo script fa un ping ogni 60 secondi al router, se non risponde ritenta 2 volte distanziate 4 secondi, se non riceve risposta visualizza una finestra che chiede se spegnere la macchina o continuare a tenerla accesa.
Se non viene premuto il tasto per mantenerla accesa entro 5 secondi, la macchina inizia il processo di spegnimento.
Lo script può essere fatto partire come utente, non è necessario essere root.