back
Initng

Questo tool permette di parallelizzare i processi secondo dei gruppi ben precisi di dipendenza. Facendo un esempio, mentre init avvia la rete, poi apache, segue MySQL, exim, ... initg, dopo aver abilitato la rete, avvia parallelamente tutti i servizi, i quali sono da essa dipendenti. Nel nostro esempio, apache, MySQL ed exim sono avviati in parallelo dopo la rete. In poche parole, se si "parallelizzassero" tutti i processi senza dar peso alle dipendenze, il sistema lancerebbe ad esempio il servizio di rete assieme ad apache, cosa che non creerebbe pochi problemi non essendo possibile lanciare apache prima che il servizio di rete sia abilitato. Grazie a initng, il quale tiene conto di queste dipendenze, vengono lanciati contemporaneamente solo i processi che non tengono dipendenze fra loro.

Nonostante sul sito ufficiale (http://www.initng.org/) troviamo delle news recenti, almeno i pacchetti per debian sembrerebbero essersi estinti da qualsiasi repository. Scaricati i sorgenti troviamo in essi gli ultimi changelog relativi a fine 2007... È difficile capire in che direzione stia andando ora il progetto, ma con queste condizioni di base non mi sono spinto oltre, preferendo i test con Upstart.

Almeno da un punto di vista puramente teorico, initng non dovrebbe fare di più che l'accoppiata concurrency & insserv; in ogni caso lascio le prove a chi è più curioso di me ;-).

Upstart

Da una notizia fresca (http://lists.debian.org/debian-devel-announce/2009/09/msg00003.html) sarà questo il metodo che andrà a sostituire init in debian, sviluppato da Scott James Remnant della Canonical e presente dalla ubuntu 6.10. Per alcuni aspetti potrebbe sembrare simile a initng (anch'esso parallelizza i processi che non sono dipendenti fra loro); ma mentre quest'ultimo si basa su una sequenza "studiata" da lanciare (basato sulle dipendenze), upstart "ascolta" una serie predefinita di eventi (basato sugli eventi): quando un evento si verifica andrà ad eseguire le azioni associate.
Rispetto a ining avremo così due grossi vantaggi: mentre initng si basa su una sequenza "predefinita" e in base alle dipendenze, upstart parte da "zero" e avvierà le sequenze in base all'accadere degli eventi (non c'è dunque bisogno di definire una sequenza, ma solo che eventi a che azioni sono associati); inoltre, mentre initng termina il suo compito ad avvio ultimato, upstart resterà in "ascolto" anche a sequenza conclusa, sempre con la possibilità di eseguire determinate azioni all'accadersi di un evento particolare. Per installare il tool basterà il solito Apt che ci procurerà un pacchetto debian di upstart. L'unica attenzione va al ramo dei repository: attualmente upstart è presente solo in testing e unstable; ma non solo: la prima vera sorpresa la troviamo all'installazione:

The following NEW packages will be installed:
  upstart 
The following packages will be REMOVED:
  sysvinit{a}
back