Muhtemelen bildiğiniz gibi, varsayılan olarak Debian veya Ubuntu tabanlı bir sisteme bir paket yüklediğinizde, paket bir hizmet içeriyorsa, paketi yüklediğinizde bu hizmet genellikle etkinleştirilir ve otomatik olarak başlatılır.
Bu benim için bir problem.
Kendimi LXC kapları oluşturmak için şablonları yönetmeye ihtiyaç duyduğumu gördüm. Her biri bir Debian veya Ubuntu sürümüne karşılık gelen birkaç kap vardır. (Ayrıca Red Hat tabanlı kaplar da vardır, ancak bunlar burada alakalı değildir.)
/var/lib/libvirt/filesystems/debian6_template
/var/lib/libvirt/filesystems/debian7_template
/var/lib/libvirt/filesystems/ubuntu1004_template
/var/lib/libvirt/filesystems/ubuntu1204_template
Bazen şablonların eksik bir pakete sahip olduğunu veya başka bir değişikliğe ihtiyaç duyduğunu göreceğim, bu yüzden paketi yüklemek için bunlara gireceğim. Ne yazık ki bunu yaptığımda, paketin hizmetinin birkaç kopyasını tamamlıyorum!
Örnek olarak, şablonların bir syslog arka plan programı olmadığını gördüm, bu yüzden birini yükledim:
for template in /var/lib/libvirt/filesystems/{debian,ubuntu}*_template; do
chroot $template apt-get install rsyslog
done
Ve derhal rsyslog çalışan dört kopya ile yara. Exim4'ün iki kopyasından bahsetmiyorum bile. Hata!
Bir yerde okudum (şimdi tekrar bulamıyorum), bir chroot içinde çalışırken hizmet başlatması gerekmediğini, ancak bu açıkça gerçekleşmediğini okudum.
Bir potansiyel açıdan kötü kesmek geçici aslında gibi hizmetler, başlangıç çeşitli komutlar değiştirilmesi için çağrılar start-stop-daemon
ve initctl
bu gerçekten yapmak istediğim çok daha fazla iş olsa. Başka seçeneğim yoksa ...
Buradaki ideal çözüm, Debian tabanlı sistemlerin bu saçmalığı yapmayı bırakması olabilir, ancak belki de belirsiz veya belgesiz bir komut satırı seçeneğinin başarısız olması apt-get
?
Açıkça görülmüyorsa, mümkünse şablonları şablonların dışında yönetmeyle ilgili her şeyi tutmak istiyorum .