service vs. systemctl scripts - que usar

22

No Fedora, temos scripts 'systemctl' e 'service'. Parece que o serviço chama internamente systemctl . Então, qual é a maneira correta / correta no Fedora para iniciar ou parar serviços - via systemctl ou service facility? Pode haver nuances para ter em mente?

    
por Mark 26.11.2014 / 15:07

2 respostas

14

A maneira de parar / iniciar serviços no Fedora (versões posteriores) está usando systemctl .

No entanto, pode haver alguns serviços restantes em /etc/init.d/ , que você pode controlar com o comando service . Você ainda pode controlá-los com systemctl , já que systemd os mapeia automaticamente para os arquivos da unidade.

Por exemplo, no meu CentOS 7 (Fedora 19 ou por aí), existe um script /etc/rc.d/init.d/network que eu poderia controlar com o comando service . Se eu usar systemctl , ainda 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 você pode ver, ele foi mapeado para /etc/rc.d/init.d/network por systemd e o comando systemctl o controla.

Eu poderia ser "no ano passado" e usar service :

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

Ambos funcionam, mas note que eles fornecem resultados diferentes em seus comandos status .

    
por 26.11.2014 / 16:45
10

Normalmente, o caso é que os scripts service são redirecionados para scripts systemctl (Systemd), portanto, é basicamente sua preferência que você deseja usar.

Exemplo

Do meu 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.

Eu geralmente uso os dois métodos, já que os velhos hábitos são difíceis de morrer. Mas se você está tentando se adaptar ao mundo do Systemd, eu continuaria a me forçar a fazer coisas usando systemctl , se possível.

O Systemd também traz tudo o que você costumava fazer com chkconfig e service sob um comando, systemctl , então geralmente acho mais fácil lidar com isso no longo prazo.

Este folheto no site do projeto Fedora é útil para fazer a troca.

Poracaso,arespostaàsuaperguntaoriginalérespondidaemumanotaderodapénessapágina:

Notethatall/sbin/serviceand/sbin/chkconfiglineslistedabovecontinuetoworkonsystemd,andwillbetranslatedtonativeequivalentsasnecessary.Theonlyexceptionischkconfig--list.

Referências

  • SysVinit para o Systemd Cheatsheet
por 26.11.2014 / 16:37