service vs. systemctl scriptleri - hangi kullanılacak


24

Fedora'da 'systemctl' ve 'service' komut dosyalarımız var. Bu hizmet dahili olarak çağırıyor gibi görünüyor systemctl. Yoluyla - Yani başlatmak veya durdurmak hizmetlerine Fedora doğru / doğru yolu nedir systemctlya servicetesisin? Akılda tutulması gereken nüanslar olabilir mi?


3
Debian kullanıcısı, kesin olarak cevaplayamaz, ancak service foo startdebian'da init sisteminizin sistem veya sysvinit veya starttart olup olmadığına bakar; systemctlsistemd PID1 değilse muhtemelen işe yaramazdı.
Shadur

Yanıtlar:


14

Fedora'da (daha sonraki sürümlerde) hizmetleri durdurma / başlatma yöntemi kullanılıyor systemctl.

Bununla /etc/init.d/birlikte, servicekomutla kontrol edebileceğiniz birkaç hizmet kalmış olabilir . Bunları, sizin için otomatik olarak birim dosyalarına eşlediği systemctlgibi kontrol edebilirsiniz systemd.

Örneğin, CentOS 7'mde (Fedora 19 veya dahası), komutla /etc/rc.d/init.d/networkkontrol edebileceğim bir senaryo var service. Onun systemctlyerine kullanırsam hala işe yarıyor:

# sudo systemctl status network
network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network)
Active: active (exited) since Tue 2014-11-11 08:21:51 GMT; 2 weeks 1 days ago

Gördüğünüz gibi, bu eşleştirilmiş edilmiştir /etc/rc.d/init.d/networktarafından systemdve systemctlkomut kontrolleri o.

Bu yüzden 'geçen yıl' olabilir ve serviceonun yerine kullanabilirim :

# service network status
Configured devices:
lo eth0
Currently active devices:
lo eth0 tun0

Her ikisi de işe yarar, ancak statuskomutlarında farklı sonuçlar verdiklerini unutmayın .


10

Genellikle servicekomut dosyalarının systemctl (Systemd) komut dosyalarına yönlendirildiği durumdur, bu nedenle kullanmak istediğiniz temelde tercihinizdir.

Örnek

Fedora 20 sistemimden.

$ service sshd status
Redirecting to /bin/systemctl status  sshd.service
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: active (running) since Fri 2014-11-21 09:12:10 EST; 5 days ago
 Main PID: 1095 (sshd)
   CGroup: /system.slice/sshd.service
           └─1095 /usr/sbin/sshd -D

Nov 21 09:12:10 dufresne systemd[1]: Starting OpenSSH server daemon...
Nov 21 09:12:10 dufresne systemd[1]: Started OpenSSH server daemon.
Nov 21 09:12:11 dufresne sshd[1095]: Server listening on 0.0.0.0 port 22.
Nov 21 09:12:11 dufresne sshd[1095]: Server listening on :: port 22.

Eski alışkanlıklar zor öldüğü için genellikle iki yöntemi de kullanırım. Fakat eğer Systemd dünyasına adapte olmaya çalışıyorsanız, systemctlmümkünse kullanarak bir şeyler yapmaya zorluyorum .

Ayrıca systemd Eğer yapmak için kullanılan her şeyi getirir chkconfigve servicebir komuta altında, systemctlbu yüzden genellikle uzun vadede baş etmek o kolay bulmaktadır.

Fedora projesinin web sitesinde yer alan bu sayfa, geçişin yapılmasında yardımcı oluyor.

   ss1

Bu arada, orijinal sorunuzun cevabı o sayfadaki dipnotta cevaplandırılmıştır:

Yukarıda listelenen tüm / sbin / service ve / sbin / chkconfig satırlarının systemd üzerinde çalışmaya devam ettiğini ve gerektiğinde yerel eşdeğerlere çevrileceğini unutmayın. Bunun tek istisnası chkconfig --list.

Referanslar

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.