back
CONCURRENCY

Con CONCURRENCY si intende la proprietà di svolgere più processi parallelamente. Questa è definita nel file /etc/init.d/rc nel primo tratto del file:

...
# Specify method used to enable concurrent init.d scripts.
# Valid options are 'none', 'startpar' and 'makefile'. To enable
# the concurrent boot option, the init.d script order must allow for
# concurrency.  This is not the case with the default boot sequence in
# Debian as of 2008-01-20.  Before enabling concurrency, one need to
# check the sequence values of all boot scripts, and make sure only
# scripts that can be started in parallel have the same sequence
# number, and that a scripts dependencies have a earlier sequence
# number. See the insserv package for a away to reorder the boot
# automatically to allow this.
CONCURRENCY=none
...

Potremo dunque sostituire il "none" con "startpar" per permettere al sistema di non dover aspettare che un processo sia terminato prima di avviare il prossimo. L'opzione "shell" avrà lo stesso effetto, anche se attualmente è considerata deprecata. Ciò nonostante, alcune fonti in rete descrivono l'opzione "shell" come più rapida in paragone a "startpar". Nei miei test (v. sotto) non ho riscontrato praticamente differenze.
In alternativa è possibile aggiungere l'opzione "CONCURRENCY=startpar" al file /etc/default/rcS in fondo a quelle già presenti e ottenendo lo stesso risultato.

N.B.: parallelizzare i processi non è così semplice come si possa pensare. Se ad esempio un processo ha bisogno che un altro si terminato prima della sua esecuzione si potrebbe andare in contro a spiacevoli conseguenze...

In ogni caso, niente paura. L'importante è sapere (e magari documentare) ogni operazione che si ha svolto; anche poi in caso di schermata nera al boot, potremo sempre avviare il PC da una live e ripristinare la situazione iniziale, ripercorrendo al contrario le operazioni effettuate. Il pacchetto insserv (v. sotto) potrebbe aiutare in questo senso, ordinando la sequenza d'avvio dei processi.

Gli script *.sh

Forse vi stavate già domandando a cosa servivano, o forse non lo avevate ancora notato: alcuni script in /etc/init.d terminano con ".sh", altri no. A dire il vero il discorso è più che complicato; si tratta di un fatto più che altro storico e al momento sta creando solo casini: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=513955. A noi basterà sapere che gli script definiti con il suffisso ".sh" sono oramai deprecati e verranno forse nel futuro sostituiti.
Proprio nel caso specifico della parallelizzazione, gli script con suffisso ".sh" non rispecchiano l'ordine d'avvio dei processi e rallentano dunque il boot. Da pacchetto sysvinit 2.86.ds1-62 il problema relativo a questi script dovrebbe essere stato risolto; in termini, in lenny, con la versione 2.86.ds1-61 dovremmo rimarcare un avvio più lento rispetto all'attuale squeeze (testing) e sid con le versioni 2.86.ds1-65 e rispettivamente 2.87dsf-6.

back