systemdnos proporciona el systemctlconjunto de comandos que se usa principalmente para permitir que los servicios se inicien en el momento del arranque. También podemos iniciar, detener, recargar, reiniciar y verificar el estado de los servicios con la ayuda de systemctl.
Podemos hacer, por ejemplo sudo systemctl enable service_name, y service_namese iniciará automáticamente en el momento del arranque. También podemos desactivar los servicios para que no se inicien en el momento del arranque.
¿Es la única diferencia entre los comandos servicey systemctlque systemctlse pueden usar para habilitar el inicio de los servicios en tiempo de ejecución? ¿Podemos usar systemctlen cualquier servicio? ¿Qué otras diferencias significativas hay?
                    
                        command-line
                                services
                                systemd
                                
                    
                    
                        luv.preet
fuente
                
                fuente

Respuestas:
El
servicecomando es un script de envoltura que permite a los administradores del sistema iniciar, detener y verificar el estado de los servicios sin preocuparse demasiado por el sistema de inicio real que se está utilizando. Antes de la introducción de systemd, era un contenedor de/etc/init.dsecuencias de comandos y de Upstartinitctlcomando, y ahora es un contenedor para estos dos ysystemctlasí.¡Usa la fuente, Luke!
Comprueba el Upstart:
Si eso no funciona, busca systemd:
Y si eso también falla, recurre a los
/etc/init.dscripts del Sistema V :Dado que el
servicecomando es un contenedor bastante simple, solo admite un subconjunto limitado de acciones en comparación con lo que podría proporcionar el sistema de inicio real.Para la portabilidad sobre varias versiones de Ubuntu, los usuarios pueden usar de manera confiable el
servicecomando para iniciar, detener, reiniciar o examinar el estado de un servicio. Para las tareas más complejas, sin embargo, el comando real que se utiliza, ya sea queinitctlosystemctlo la/etc/init.dsecuencia de comandos podría tener que ser utilizado directamente.Además, al ser un contenedor, el
servicescript en algunos casos también hace más de lo que podría hacer el comando equivalente directo. Por ejemplo:/etc/init.dscripts en un entorno limpio. (Tenga en cuenta la invocación larga deenvcomandos en larun_via_sysvinitfunción anterior).restarten los sistemas Upstart a una combinación destop/start, ya que seinitctl restartgenerará un error si el servicio no se está ejecutando.Detiene los sockets cuando detiene los servicios systemd que tienen sockets asociados:
Los servicios de inicio se habilitaron directamente en el archivo de configuración del servicio (o se deshabilitaron mediante anulaciones), y los scripts del Sistema V se habilitaron o deshabilitaron con el
update-rc.dcomando (que administraba enlaces simbólicos en los/etc/rc*directorios), por lo que elservicecomando nunca estuvo involucrado en habilitar o deshabilitar los servicios en el arranque .fuente
Hay mucho más de lo que mencionaste que
systemctles capaz de hacer.systemdfunciona con unidades, hay diferentes tipos de unidades: objetivos, servicios, sockets, etc. los objetivos son el mismo concepto que los niveles de ejecución, son un montón de unidades juntas.Puede usar
systemctlpara establecer u obtener el objetivo predeterminado del sistema.Puedes ir a otros objetivos:
Otros objetivos son: multiusuario, gráfico, recue, emergencia, reinicio, apagado.
Como dijiste, puedes usar
systemctlpara administrar servicios, algunos de los otros comandos relacionados con la administración de servicios que conozco son:Puede usarlo para conocer el estado de un servicio:
Puede enmascarar o desenmascarar un servicio:
Cuando oculta un servicio al que estará vinculado
/dev/null, de manera manual o automática, otros servicios no pueden activarlo / habilitarlo. (deberías desenmascararlo primero).Otro uso de systemctl es enumerar unidades:
Que enumera todo tipo de unidades, cargadas y activas.
Lista de unidades de servicio:
O para enumerar todas las unidades disponibles, no solo las cargadas y activadas:
Puede crear alias o incluso controlar máquinas remotas
Por otro lado,
servicehace lo que tiene que hacer, administrar servicios y no tener nada que ver con los negocios de otras personas;)fuente
servicepueda hacer pero nosystemctl?service startfallidos. Pre-systemd,service startme dejaría ver de inmediato por qué mi servicio no comenzaría. Después del sistema, tengo que mirar cuatro o cinco registros diferentes antes de poder encontrarlo. Dicho todo esto, mi comentario está indudablemente fuera de tema y probablemente será eliminado.servicecomando, ¿no era esa parte de la pregunta?