12.10'da sistem hizmetleri nasıl başlatılır?


12

Ubuntu'da beni her zaman şaşırtan bir şey, sistem hizmetlerinin nasıl başlatıldığıydı. Ubuntu'nun Upstart kullandığını ve SysV'yi desteklediğini biliyorum, ancak hangisini hizmetleri başlatmak için kullanılıyor? Bu, bir hizmet için "manuel" başlangıç ​​yapmak istediğinizde önemlidir.

Örneğin, sistemimde aşağıdaki hizmetler için /etc/init.d/<service>(SysV) ve /etc/init/<service>.conf(Upstart) dosyalarına sahibim :

acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin

Bu yüzden başlangıçta MySQL yürütmesini devre dışı bırakmak isterseniz, devre dışı bırakmak için Upstart yolunu veya SysV yolunu kullanmalıyım? Ayrıca, bunlardan hangisinin gerçekten genel bir hizmet başlatmak için kullanıldığını nasıl anlayabilirim?

Düzenle

Burada gerçekten şüphe SysV / Upstart kullanarak hizmetleri nasıl devre dışı / etkinleştirmek değil. Beni gerçekten şaşırtan şey, bazı hizmetlerin SysV ve Upstart'da aynı anda tanımlandığı (ve etkinleştirildiği). Aralarında herhangi bir öncelik var mı ( mysqlSysV kullanarak her iki başlatmada da etkinleştirilmiş gibi )? Veya bir aracın diğerini arka planda kullandığı durumlar olabilir mi?


1
Kabul edilen cevaba bir göz atın: askubuntu.com/questions/133807/… bazı ilginç bağlantılar var.
Rinzwind

Yanıtlar:


2

Hem SysV hem de uptart içinde tanımlanan hizmetler ile ilgili olarak, genellikle SysV üzerinden yeniden başlatırsanız aşağıdaki gibi bir şey görürsünüz:

al@al-mythtv:~$ sudo /etc/init.d/mysql restart
[sudo] password for al: 
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 29846

Bu demek istediğim Upstart bu hizmetler için tercih edilir ve SysV uygulaması sadece bir sarıcı.

Ayrıca, dizinlerin anlamı geriye dönük olduğunu düşünüyorum. / etc / init sonradan başlatma yapılandırmasıdır, /etc/init.d ise SysV uyumluluğudur, ancak bu tür hizmetler için yeniden başlatılmak için yalnızca simgelerdir.


6

Büyük ölçüde uygulamaya ve ambalaj koruyucusuna bağlıdır.

Upstart komut dosyaları için güçlü bir tercih vardır, çünkü olayları işlerler (genellikle harika bir şeydir), ancak birçok uygulama yeterince iyi Upstart komut dosyasına sahip değildir veya uygulamanın bakımı varsayılanlara (uygulama veya Debian'ın) bağlı kalmayı seçmiştir .

Her iki durumda da, uyum sağlamanız gereken konumdasınız.

  • Başlatma için:
    • Dosyayı bitmeyen bir adla yeniden adlandırın .confveya
    • manualDosyaya ekleyin . Bu, hizmeti manuel olarak yüklemenizi sağlar.
  • Eski hizmetler için:

    update-rc.d -f <service> remove
    

Bir varsa /etc/init.d/bir şey için senaryo ve bir /etc/init/senaryo ve init.d versiyonu hala canlı olup olmadığını kontrol etmek istiyorum, sen ile kontrol edebilirsiniz:

ls -l /etc/rc?.d/*<service>

Bir sürü sembol görürseniz, eski SysV initine yüklenir.


SysV ve Upstart'da (örneğin acpid) etkinleştirilmiş bir hizmetim varsa, SysV tarafından başlatıldığını varsayabilir miyim? Ya da devre dışı bırakmak istiyorsanız ben kullanarak update-rc.dve yeniden adlandırma hile yapmak gerekir ?
Salem
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.