Gestione e creazione di servizi in Debian

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.

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).

Privacy Policy