Tal vez esta es una pregunta trivial, pero no está totalmente claro para mí. En uno de nuestros servidores tenemos algunos procesos en segundo plano en ejecución que se iniciaron servicey otros que se iniciaron systemctl, como este:
$ service nginx start
$ systemctl start gunicorn
¿Cuál es la diferencia entre los dos comandos? ¿Cuál es la forma preferida de tratar con servicios en segundo plano? ¿Cómo configurar el comando preferido?

Respuestas:
servicees un comando de "alto nivel" utilizado para iniciar y detener servicios en diferentes unixes y linuxes. Dependiendo del administrador de servicios de "nivel inferior",serviceredirige a diferentes binarios.Por ejemplo, en CentOS 7 redirige a
systemctl, mientras que en CentOS 6 llama directamente al/etc/init.dscript relativo . Por otro lado, en versiones anteriores de Ubuntu redirige aupstartservicees adecuado para la gestión de servicios básicos, mientras que las llamadas directassystemctlofrecen mayores opciones de control.fuente
systemctles básicamente una versión más potente delservice.Con
servicesólo se puede hacer comandos relacionados con el servicio (es decirstatus,reload,restart) mientras que consystemctlusted puede utilizar los comandos más avanzados tales como:systemctl is-failed name.service # check if service failed to loadO servicios de enmascaramiento:
systemctl mask name.serviceHay mucha buena información en esta página de Ask Ubuntu.
fuente
systemctles la utilidad principal para controlar demonios / serviciossystemd,mientras que el
servicecomando es la utilidad tradicional en elSysVinitmundo.Una de las características de systemd es ser compatible con los comandos SysVinit / legacy,
por lo que, si tiene el
systemctlcomando,service foo startserá una envolturasystemctl start foo.La misma historia para
chkconfig.fuente