Compago

...free knowledge

 
  • Increase font size
  • Default font size
  • Decrease font size
Home Manuali Linux Gestione e creazione di servizi in Debian

Gestione e creazione di servizi in Debian

E-mail Stampa PDF

Introduzione
I servizi sono dei programmi che vengono eseguiti in background nel sistema e che non richiedono necessariamente l'interazione con l'utente.

Vediamo come gestirli ed eventualmente crearne di nuovi.

Funzionamento dei servizi
In sistemi debian i processi che partono all'avvio del sistema si trovano in directory di questo tipo:

/etc/rcX.d/SYYservizio

Dove X rappresenta il livello di runlevel e YY rappresenta il numero che identifica la posizione di avvio del processo.

I servizi che installiamo noi invece si trovano nella directory

/etc/init.d/servizio

Questi servizi, che lavorano come detto in background, possono essere manipolati dall'utente attraverso degli appositi comandi standard.
Per esempio con il servizio apache:

Per avviare il servizio
# /etc/init.d/apache start


Per riavviare il servizio

# /etc/init.d/apache restart


Per fermare il servizio

# /etc/init.d/apache stop

Creazione di un nuovo servizio
Tutti i servizi attivi sulla nostra macchina, e presenti nella cartella /etc/init.d/, non sono altro che semplici script bash che seguono quasi sempre una linea standard.
Vediamo come creare un nuovo servizio per la gestione di un programma che vogliamo sia eseguito e gestito in background.

#!/bin/bash
# Codice di "myservice"
case "$1" in
# Codice per l'avvio del servizio
start)
...
;;

# Codice per l'arresto del servizio
stop)
...
;;

# Codice per il riavvio del servizio
restart)
...
;;
*)
echo "Usage: $0 {start|stop|restart}" >&2
exit 1
;;
esac

Questo potrebbe essere uno script esempio da inserire in /etc/init.d/myservice.

Aggiungere e rimuovere l'init script ai runlevel
Aver create ed aggiunto lo script nella cartella però non basta. Per rendere effettive le modifiche che abbiamo effettuato e per automatizzare lo start e lo stop del nostro servizio, dobbiamo creare dei link simbolici nelle cartelle etc/rcX.d: questo lo facciamo automaticamente con un apposito comando.

# update-rc.d myservice default XX YY

Dove XX è il numero di priorità di avvio e YY di arresto.

Se non volessimo addentrarci sull'argomento priorità di avvio, il mio consiglio è di usare l'opzione "defaults", in questo modo il servizio verrà installato nei vari slot di priorità in maniera automatica.

# update-rc.d myservice defaults

Nel caso in cui il nostro servizio "myservice" non dovesse più esserci utile dobbiamo rimuoverlo dalla directory init:

# rm /etc/init.d/myservice

Dobbiamo però eliminare anche i link simbolici (che non avrebbero più effetto), quindi eseguiamo il comando:

# update-rc.d -f myservice remove

Ora sappiamo come creare e gestire nuovi servizi per la nostra macchina Linux (debian nel nostro caso).

Ultimo aggiornamento ( Sabato 19 Giugno 2010 08:33 )