Skip to navigation
Logo Penaz's Area

cat /dev/random > penaz

Poniamo fine agli arresti di sistema involontari su Linux


Vediamo un piccolo script in Bash per modificare il comportamento dei comandi di sistema "halt" e "reboot" di Linux.

Buongiorno a tutti. Dopo due settimane di inattività torno alla carica con un problema che affligge me e sicuramente qualcun'altro: gli spegnimenti involontari dei sistemi Linux. La classica situazione tipo è: "Ok devo riavviare il sistema" per poi accorgersi che era necessario eseguire un'altra operazione o un'altra serie di operazioni prima del fatidico "reboot".

Tramite questo semplice script in bash è possibile fare in modo che il sistema chieda se vogliamo veramente riavviare il sistema:

 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
53
#!/bin/sh
# Un semplice script per il controllo granulare
# dello spegnimento e del riavvio del sistema
while test $# -gt 0; do
    case "$1" in
        -h|--help)
            echo "Usage:"
            echo " "
            echo "-s|--shutdown -> Perform System Halt"
            echo "-r|--reboot   -> Perform System Reboot"
            exit 0
            ;;
        -s|--shutdown)
            echo "This will perform a full System halt, do you want to continue? [y/N]"
            read A
            case "$A" in
                y|yes|Yes|Y)
                    shutdown -h now
                    exit 0
                    ;;
                n|no|No|N)
                    echo "Shutdown cancelled"
                    exit 0
                    ;;
                *)
                    echo "Invalid answer, assuming 'no'"
                    break
                    ;;
            esac
            ;;
        -r|--reboot)
            echo "This will perform a System reboot, do you want to continue? [y/N]"
            read A
            case "$A" in
                y|yes|Yes|Y)
                    shutdown -r now
                    exit 0
                    ;;
                n|no|No|N)
                    echo "Reboot cancelled"
                    exit 0
                    ;;
                *)
                    echo "Invalid answer, assuming 'no'"
                    break
                    ;;
            esac
            ;;
        *)
            break
            ;;
    esac
done

Dopo averlo piazzato dove più ci aggrada è sufficiente aprire il file di configurazione della nostra shell (.bashrc per gli utenti Bash e .zshrc per gli utenti Z-Shell) ed aggiungere le seguenti righe:

alias halt=/usr/local/bin/ipwr.sh -s
alias reboot=/usr/local/bin/ipwr.sh -r

Nel mio caso ho inserito lo script in /usr/local/bin. Il sistema funzionerà dalla prossima apertura della shell.

Buon divertimento a tutti!

Penaz.