Molti utenti scelgono di installare software di terze parti in FreeBSD attraverso la collezione dei port. Nell magior parte dei casi potrebbe essere necessario configurare il software in un modo tale che sia avviato all'inizializzazione di sistema. Servizi, come mail/postfix o www/apache13 sono solo due fra i molti pacchetti software che possono essere avviati durante l'inizializzazione di sistema. Questa sezione spiega le procedure disponibili per avviare software di terze parti.
In FreeBSD, molti servizi inclusi, come cron(8), sono avviati attraverso gli script di startup. Questi script possono differire a seconda della verione di FreeBSD o del produttore; comunque il più importante aspetto da considerare è che la configurazione di startup può essere gestita tramite semplici script di inizializzazione.
Prima dell'avvento di rc.d
, gli
applicativi lasciavano un semplice
script di avvio nella directory /usr/local/etc/rc.d
che sarebbe stato poi
letto dagli script di inizializzazione di sistema. Questi script
sarebbero poi eseguiti durante la fase di avvio del
sistema.
Mentre molti individui hanno speso ore cercando di integrare
il vecchio stile di configurazione nel nuovo sistema, resta il fatto
che qualche utility di terze parti necessita ancora di uno script
semplicemente lasciato nella succitata directory. Le sottili differenze
negli script dipendono dal fatto se rc.d
sia
usato o meno. Prima
di FreeBSD 5.1 viene usato il vecchio metodo di configurazione
ed in quasi tutti i casi uno script di nuovo tipo funzionerebbe
perfettamente.
Mentre ogni script deve rispettare alcuni requisiti minimi,
il più delle volte questi requisiti sono indipendenti
dalla versioni di FreeBSD. Ogni script deve avere una estensione
.sh
appesa alla fine ed ogni script deve essere
eseguibile dal sistema. L'ultima richiesta può essere soddisfatta
usando il comando chmod
e impostando i permessi
a 755
. Ci dovrebbe essere, come minimo,
un'opzione per fare lo start
dell'applicativo
ed un'opzione per farne lo stop
.
Il più semplice script di avvio probabilmente sembrerebbe simile al seguente:
#!/bin/sh echo -n ' utility' case "$1" in start) /usr/local/bin/utility ;; stop) kill -9 `cat /var/run/utility.pid` ;; *) echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac exit 0
Questo script fornisce un'opzione stop
e start
per l'applicazione a cui ci riferiamo
semplicemente come utility
.
Potrebbe essere avviata manualmente con:
#
/usr/local/etc/rc.d/utility.sh start
Mentre non tutto il software di terze parti richiede la linea
in rc.conf
, quasi ogni giorno un nuovo port
viene modificato per accettare questa configurazione. Controlla
l'output finale dell'installazione per maggiori informazioni su un
applicativo specifico. Ci sarà del software di terze parti
che fornisce script di avvio che permettono all'applicativo di
essere usato con rc.d
; tuttavia, questo
sarà discusso nella successiva sezione.
Ora che FreeBSD include rc.d
, la
configurazione dell'avvio degli applicativi è
diventata più semplice, e più flessibile.
Usando le parole chiave discusse nella sezione rc.d, gli applicativi ora possono
essere configurati dopo certi altri servizi come ad esempio il
DNS; possono permettere che siano passati flag extra
nel codice attraverso rc.conf
al posto
di flag statici negli script di avvio, e molto altro.
Uno script basilare potrebbe assomigliare al seguente:
#!/bin/sh # # PROVIDE: utility # REQUIRE: DAEMON # KEYWORD: shutdown . /etc/rc.subr name=utility rcvar=utility_enable command="/usr/local/sbin/utility" load_rc_config $name # # DO NOT CHANGE THESE DEFAULT VALUES HERE # SET THEM IN THE /etc/rc.conf FILE # utility_enable=${utility_enable-"NO"} pidfile=${utility_pidfile-"/var/run/utility.pid"} run_rc_command "$1"
Questo script assicurerà che
utility partirà dopo
il servizio daemon
.
Fornisce inoltre un metodo per settare e tracciare il
PID, o il file dell'ID di
processo.
Questa applicazione potrebbe avere le seguenti linee piazzate
in /etc/rc.conf
:
utility_enable="YES"
Questo metodo permette inoltre una semplice
manipolazione degli argomenti di linea di comando, incluse
le funzioni di default definite in /etc/rc.subr
,
compatibilità con l'utility rcorder(8) e fornisce una
più semplice configurazione attraverso il file
rc.conf
.
Altri servizi, come i demoni POP3,
IMAP, etc. potrebbero essere avviati
usando inetd(8). Questo implica l'installazione del servizio
dalla collezione dei port e l'aggiunta di una linea di
configurazione al file /etc/inetd.conf
o togliendo dei commenti in una delle linee di configurazione
del file stesso.
L'uso di inetd e la
sua configurazione è
descritto in dettaglio nella sezione
inetd.
In alcuni casi, potrebbe essere più plausibile usare
il demone cron(8) per avviare i servizi di sistema. Questo
approccio ha alcuni vantaggi poichè cron
esegue questi processi come l'utente proprietario del file
crontab
. Questo permette ad utenti regolari
di avviare e mantenere alcuni applicativi.
Il comando cron
fornisce una caratteristica unica,
@reboot
, che potrebbe essere usato al posto della
specifica del tempo. Questo farà sì che il job sia
eseguito quando cron(8) è avviato, normalmente durante
l'inizializzazione di sistema.
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Per domande su FreeBSD, leggi la
documentazione prima di contattare
<questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a
<doc@FreeBSD.org>.