service vs script systemctl - che usare


24

In Fedora abbiamo script "systemctl" e "service". Sembra che il servizio chiama internamente systemctl. Quindi qual è il modo corretto / giusto su Fedora per avviare o interrompere i servizi - tramite systemctlo servicestruttura? Potrebbero esserci delle sfumature da tenere a mente?


3
Utente Debian, quindi non posso rispondere con certezza, ma service foo startin debian funziona se il tuo sistema init è systemd o sysvinit o upstart; systemctlprobabilmente non funzionerebbe se systemd non è PID1.
Shadur,

Risposte:


14

Il modo per arrestare / avviare i servizi in Fedora (versioni successive) sta usando systemctl.

Tuttavia, potrebbero essere rimasti alcuni servizi in /etc/init.d/cui è possibile controllare con il servicecomando. Puoi ancora controllarli con systemctlcome systemdli mappa automaticamente ai file di unità per te.

Ad esempio, sul mio CentOS 7 (Fedora 19 o successivi), c'è uno /etc/rc.d/init.d/networkscript che potrei controllare con il servicecomando. Se systemctlinvece lo uso , funziona ancora:

# 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

Come puoi vedere, è stato mappato /etc/rc.d/init.d/networkda systemde il systemctlcomando lo controlla.

Potrei essere così "l'anno scorso" e usare serviceinvece:

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

Entrambi funzionano, ma si noti che danno risultati diversi nei loro statuscomandi.


10

In genere accade che gli servicescript vengano reindirizzati agli script systemctl (Systemd), quindi in pratica è la preferenza che si desidera utilizzare.

Esempio

Dal mio sistema Fedora 20.

$ 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.

In genere uso entrambi i metodi, poiché le vecchie abitudini sono dure a morire. Ma se stai cercando di adattarmi al mondo Systemd, continuerei a costringermi a fare le cose usando systemctlse possibile.

Inoltre Systemd porta tutto ciò che eri solito fare con chkconfige servicesotto un comando systemctl, quindi in genere trovo che sia più facile da affrontare a lungo termine.

Questo cheat sul sito Web del progetto Fedora è utile per effettuare il passaggio.

   ss1

Per inciso, la risposta alla tua domanda originale trova risposta in una nota a piè di pagina in quella pagina:

Nota che tutte le righe / sbin / service e / sbin / chkconfig elencate sopra continuano a funzionare su systemd e saranno tradotte in equivalenti nativi se necessario. L'unica eccezione è chkconfig --list.

Riferimenti

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.