Skip to content

Aggiungere uno script di esecuzione locale ad un init stile UNIX System V


Caveat emptor: Tutta questa roba non è necessaria se vi trovate un file /etc/rc.local. Potete usare quello per ottenere esattamente lo stesso comportamento.

Molti di voi sapranno che le distribuzioni di GNU/Linux più note (Debian e derivate, come Ubuntu, ma anche Fedora e OpenSUSE) utilizzano un init derivato da UNIX System V, che ha la caratteristica di organizzare i singoli script di avvio in directory diverse a seconda del runlevel.

In realtà, a volte sarebbe desiderabile avere uno script che avvii, come dire, tutte quelle attività una tantum, o per cui non si prevede una rigorosa implementazione degli stati per singolo runlevel. In questo, un init stile BSD offre una funzionalità apposita: uno script rc.local.

Con i passaggi seguenti (provati su Debian e Ubuntu) è possibile aggiungere uno script che si comporta esattamente come il suddetto script, che si chiamerà local:

cd /etc/init.d
sudo touch local
sudo chmod +x local
sudo update-rc.d local defaults 80

/etc/init.d/local dovrà contenere righe come queste:

#!/bin/bash

case "$1" in
       start)
       # Comandi da eseguire all'avvio del computer
       # (o dello script)
               comando1
               comando2
       # Due punti e virgola ;; marcano la fine della
       # sezione
       ;;

       stop)
       # Comandi da eseguire allo spegnimento del
       # computer (o alla terminazione dello script)
               comando1
               comando2
       ;;

      restart)
     # Comandi da eseguire al riavvio dello script
               comando1
               comando2
       ;;

        *)
        # Nessun parametro specificato.
        echo "Usage: $0 {start|stop|restart}
        ;;
esac
by-sa

Categories: Posts.

Tags: , , , , , , , , , , , , , , , , ,

Comment Feed

One Response



Some HTML is OK

or, reply to this post via trackback.

Note: This post is over 3 years old. You may want to check later in this blog to see if there is new information relevant to your comment.

Continuing the Discussion

This work by Emanuele Cipolla is licensed under a Creative Commons Attribution-ShareAlike 2.5 Italia.