it-swarm-tr.com

"Hizmet" ve "/etc/init.d/" arasındaki fark nedir?

Bir süredir Ubuntu lezzetini hem açık hem de kapalı olan sunucu kurulumlarını yönetiyorum - Hizmetlerin yeniden başlatılması için /etc/init.d/ olarak ayarlanmış durumdayım. Şimdi bu mesajı alıyorum:

[email protected]:~# /etc/init.d/mysql status
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql status

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the status(8) utility, e.g. status mysql
mysql start/running, process 14048

Bu Ubuntu'nun en son LTS'sinde ortaya çıkmış gibi görünüyor - neden? /etc/init.d/ ile ilgili bu kadar kötü olan şey ve service ile /etc/init.d/ arasında bir fark var/ne var?

113
Marco Ceppi

/etc/init.d scriptleri işleri yapmanın eski yoludur. Sistem V standardından geliyorlar. Bununla birlikte, bu senaryolar sadece belirli bir sırada ateşlenir, dolayısıyla gerçek bağımlılıklar kurulamaz.

Bu nedenle, starttart, tüm /etc/init.d scriptlerinin tümünü starttart scriptleri ile (/etc/init) ile değiştirmek amacıyla geliştirilmiştir.

service, /etc/init.d komut dosyalarından başlangıç ​​komut dosyalarına sorunsuz geçiş sağlar. Gelecekte, gittikçe daha fazla sayıda komut dosyası çalıştırma işlemine aktarıldığında, hizmet yine de çalışacak çünkü her iki olasılığı da buluyor.

103
txwikinger

Ayrıca servis komutu için kılavuz sayfasına bakınız: man service

service bir betiği öngörülebilir bir ortamda çalıştırır (çalışma dizini/ve sadece 2 ortam değişkeni ayarlanmıştır: LANG ve TERM). Ayrıca --full-restart yapma yeteneği de ekler. Özetle:

  1. service,/etc/init veya /etc/init.d komutlarından çalıştırılabilir (starttart veya System V)
  2. service, tahmin edilebilir bir ortamda komut dosyalarını çalıştırır.

"Tahmin edilebilir ortam" yönü, komut dosyanızın nedense bir ortam değişkenine bağlı olması durumunda, sorunlara neden olabilir. Muhtemelen bunu aşmanın bir yolu vardır, ama ne olduğunu bilmiyorum ve bu, bu sorunun kapsamı dışında. :)

28
Joe Marty