[Linuxtrent] Re: Creazione pacchetti .deb e gestione inittab

  • From: Flavio Stanchina <flavio@xxxxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Mon, 18 Apr 2005 00:29:27 +0200

Flavio Visentin wrote:
> Il fatto è che devo avere un demone SEMPRE attivo in TUTTI i runlevel
> (da 0..6).

Allora credo anch'io che la soluzione migliore sia metterlo in inittab.
Però farlo da uno script mi preoccupa un po'.

> L'alternativa è quella di mettere in start il demone in tutti i
> runlevel, ma in caso di problemi il demone potrebbe non avviarsi,
> mentre da init il demone parte sempre, purché il root filesystem sia
> accedibile in lettura [...]

Beh, anche un link in /etc/rcS.d la vedo dura che non parta, se il sistema
non è stato invaso dagli Unni....

> In caso di problemi l'unica conseguenza è un bel messaggio "Respawning
> too fast. Disabled for 5 minutes".

In caso di problemi col demone, sì. In caso di problemi mentre tocchi
inittab... brrr.

> La modifica volevo fare in modo molto semplice, aggiungendo a postinst
> le seguenti linee: [...]

Hmmm, mi piacerebbe di più usare *solo* un "echo >>" tanto per essere
sicuri (salvo bug nella shell) che non ci sia nessun rischio di lasciare un
inittab rotto, e magari farei un grep più permissivo nel caso l'utente
abbia deciso di modificare i runlevel. Tipo così:

if grep -q '^xy:.*:respawn:/sbin/demone$'; then
  echo "/sbin/demone è già installato in inittab;"
  echo "modificare la configurazione a mano se necessario."
else
  echo 'xy:0123456:respawn:/sbin/demone' >> /etc/inittab
fi

...e per toglierlo sarà opportuno fare il giochetto con ln e mv che si usa
per i lockfile. Non so se me lo ricordo a memoria, ma dovrebbe essere così:

ln -f /etc/inittab /etc/inittab.save
grep -v '^xy:.*:respawn:/sbin/demone$' /etc/inittab > /etc/inittab.new
mv -f /etc/inittab.new /etc/inittab

-- 
Ciao, Flavio

-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: