Come probabilmente saprai, per impostazione predefinita quando installi un pacchetto su un sistema basato su Debian o Ubuntu, se il pacchetto contiene un servizio, quel servizio sarà generalmente abilitato e avviato automaticamente quando installi il pacchetto.
Questo è un problema per me
Mi sono trovato a dover gestire i modelli per la costruzione di contenitori LXC. Esistono diversi contenitori, ciascuno corrispondente a una versione di Debian o Ubuntu. (Esistono anche contenitori basati su Red Hat, ma non sono rilevanti qui.)
/var/lib/libvirt/filesystems/debian6_template
/var/lib/libvirt/filesystems/debian7_template
/var/lib/libvirt/filesystems/ubuntu1004_template
/var/lib/libvirt/filesystems/ubuntu1204_template
Occasionalmente scoprirò che i modelli hanno un pacchetto mancante o necessitano di qualche altra modifica, quindi li chroot per installarli. Sfortunatamente quando lo faccio, finisco con diverse copie del servizio del pacchetto in esecuzione!
A titolo di esempio, ho scoperto che i modelli non avevano un demone syslog, quindi ne ho installato uno:
for template in /var/lib/libvirt/filesystems/{debian,ubuntu}*_template; do
chroot $template apt-get install rsyslog
done
E prontamente terminato con quattro copie di rsyslog in esecuzione. Per non parlare di due copie di exim4. Oops!
Ho letto da qualche parte (anche se non riesco a trovarlo di nuovo ora) che non si suppone che avvii i servizi quando si esegue in un chroot, ma questo chiaramente non sta accadendo qui.
Un brutto hack potenzialmente praticabile richiede la sostituzione temporanea dei vari comandi che in realtà avviano servizi, come start-stop-daemon
e initctl
, anche se questo è molto più lavoro di quanto volessi davvero fare. Se non ho altra scelta, però ...
La soluzione ideale qui sarebbe che i sistemi basati su Debian smettessero di fare questa schifezza, ma in mancanza di ciò, forse un'opzione da riga di comando oscura o non documentata per apt-get
?
Nel caso in cui non fosse chiaro, voglio davvero mantenere qualsiasi cosa legata alla gestione dei modelli al di fuori dei modelli, se possibile.