Qual é a diferença entre service e systemctl?


33

Talvez essa seja uma pergunta trivial, mas não está totalmente clara para mim. Em um de nossos servidores, temos alguns processos em segundo plano em execução que foram iniciados servicee outros que foram iniciados systemctl, como este:

$ service nginx start
$ systemctl start gunicorn

Qual é a diferença entre os dois comandos? Qual é a maneira preferida de lidar com serviços em segundo plano? Como configurar o comando preferido?


3
existe uma explicação muito boa
Félix Brunet

A parte dolorosa disso, alguns dizem que o serviço é 'extinto' e, se não for, por que diabos eles mudam a ordem dos argumentos como em 'find / grep / localize' etc ... sem consistência nas versões do linux :(
killjoy

Respostas:


37

serviceé um comando "de alto nível" usado para iniciar e parar serviços em diferentes unixes e linuxes. Dependendo do gerenciador de serviços "de nível inferior", serviceredireciona para binários diferentes.

Por exemplo, no CentOS 7 ele redireciona para systemctl, enquanto no CentOS 6 chama diretamente o /etc/init.dscript relativo . Por outro lado, em versões mais antigas do Ubuntu, ele redireciona paraupstart

serviceé adequado para o gerenciamento básico de serviços, enquanto a chamada direta systemctloferece mais opções de controle.


9

systemctlé basicamente uma versão mais poderosa do service.

Com servicevocê só pode fazer comandos relacionados com o serviço (ou seja status, reload, restart) enquanto que com systemctlvocê pode usar comandos mais avançados, tais como:

systemctl is-failed name.service # check if service failed to load

Ou serviços de mascaramento:

systemctl mask name.service

Há muitas informações boas nesta página no Ask Ubuntu.


1

systemctlé o principal utilitário para controlar daemons / serviços systemd,
enquanto o servicecomando é o utilitário tradicional no SysVinitmundo.

Um dos recursos do systemd é ser compatível com os comandos SysVinit / legacy,
portanto, se você tiver o systemctlcomando,
service foo startserá um invólucro systemctl start foo.

Mesma história para chkconfig.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.