servicio vs scripts de systemctl - que usar

24

En Fedora tenemos los scripts 'systemctl' y 'service'. Parece que el servicio llama internamente systemctl. Entonces, ¿cuál es la forma correcta / derecha en Fedora para iniciar o detener servicios - a través de systemctlo serviceinstalaciones? ¿Puede haber matices a tener en cuenta?

marca
fuente
3
Usuario de Debian, así que no puedo responder con seguridad, pero service foo starten Debian funciona si su sistema init es systemd o sysvinit o upstart; systemctlprobablemente no funcionaría si systemd no es PID1.
Shadur

Respuestas:

14

Se está utilizando la forma de detener / iniciar servicios en Fedora (versiones posteriores) systemctl.

Sin embargo, pueden quedar algunos servicios en los /etc/init.d/que puede controlar con el servicecomando. Todavía puede controlarlos, systemctlya que systemdlos asigna automáticamente a los archivos de unidad por usted.

Por ejemplo, en mi CentOS 7 (Fedora 19 o por ahí), hay un /etc/rc.d/init.d/networkscript que podría controlar con el servicecomando. Si uso systemctlen su lugar, todavía funciona:

# 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

Como puede ver, ha sido mapeado /etc/rc.d/init.d/networkpor systemdy el systemctlcomando lo controla.

Podría ser tan 'el año pasado' y usar serviceen su lugar:

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

Ambos funcionan, pero tenga en cuenta que dan resultados diferentes en sus statuscomandos.

garethTheRed
fuente
10

Por lo general, las servicesecuencias de comandos se redirigen a las secuencias de comandos systemctl (Systemd), por lo que básicamente es su preferencia la que desea usar.

Ejemplo

De mi 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.

Generalmente uso ambos métodos, ya que los viejos hábitos mueren mucho. Pero si estás tratando de adaptarte al mundo de Systemd, continuaría obligándome a hacer las cosas usando systemctlsi es posible.

Además, Systemd trae todo lo que solía hacer con chkconfigy servicebajo un solo comando systemctl, por lo que generalmente me resulta más fácil lidiar a largo plazo.

Esta hoja de trucos en el sitio web del proyecto Fedora es útil para realizar el cambio.

   ss1

Por cierto, la respuesta a su pregunta original se responde en una nota al pie de esa página:

Tenga en cuenta que todas las líneas / sbin / service y / sbin / chkconfig enumeradas anteriormente continúan funcionando en systemd, y se traducirán a equivalentes nativos según sea necesario. La única excepción es chkconfig --list.

Referencias

slm
fuente