GNU/Linux >> Tutoriales Linux >  >> Linux

Ubuntu:servicios de inicio, parada y reinicio

Cuando una aplicación se ejecuta en segundo plano, se denomina servicio. Estos son esenciales para ejecutar el sistema o nuestras aplicaciones de software. Algunos de los servicios comunes que encontrará en la mayoría de los servidores son Apache, MySQL, NGINX, etc. Cuando el sistema se inicia, estos servicios se configuran para iniciarse automáticamente.

Estoy usando Ubuntu para alojar mis sitios web. También uso MySQL para almacenar todos los datos de mis sitios web. A veces, realizo actualizaciones periódicas y es esencial reiniciar estos servicios. En este tutorial, aprenderemos varias formas de iniciar, detener y reiniciar servicios en Ubuntu.

Diferentes formas de iniciar, detener y reiniciar servicios en Ubuntu

  1. comando systemctl
  2. comando de servicio
  3. guiones de inicio

Uso de systemctl para iniciar, detener y reiniciar los servicios de Ubuntu

Esta es la forma preferida de administrar los servicios de Ubuntu. Si no está seguro del nombre del servicio, puede ejecutar systemctl --all Comando para listar todos los servicios. Pero puede haber cientos de servicios ejecutándose, por lo que es mejor filtrar la lista usando grep comando.

Intentemos averiguar los nombres de los servicios de MySQL y el servidor Apache HTTP.

# systemctl --all | grep -i mysql
  mysql.service                                                                          loaded    active   running   MySQL Community Server                                                       
# systemctl --all | grep -i apache
  apache2.service                                                                        loaded    active   running   The Apache HTTP Server                                                       
# 

Entonces, el nombre del servicio MySQL es "mysql.service" y el nombre del servicio del servidor Apache HTTP es "apache2.service".

Aprendamos cómo administrar estos servicios usando el comando systemctl.

1. Detener el servicio usando systemctl

# systemctl stop mysql.service 
#

El comando no da ningún resultado si la ejecución es exitosa.

2. Comprobación del estado del servicio mediante systemctl

Podemos verificar el estado del servicio usando el siguiente comando.

# systemctl status mysql.service 
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2020-05-02 17:39:22 UTC; 9s ago
 Main PID: 26948 (code=exited, status=0/SUCCESS)

3. Inicie el servicio usando systemctl

# systemctl start mysql.service 
# 
# systemctl status mysql.service 
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-05-02 17:41:43 UTC; 3s ago
  Process: 30254 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, s
  Process: 30233 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 30256 (mysqld)
    Tasks: 27 (limit: 2318)
   CGroup: /system.slice/mysql.service
           └─30256 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Observe que cuando detuvimos el servicio, el valor "Activo" estaba inactivo (muerto). Después de iniciar el servicio, cambia a activo (en ejecución).

4. Reinicie el servicio usando systemctl

# systemctl restart apache2.service
# systemctl status apache2.service 
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Sat 2020-05-02 17:55:09 UTC; 8s ago

Consejo :No es necesario utilizar el nombre de servicio completo con el comando systemctl. Por ejemplo, si ejecutamos "systemctl restart mysql", automáticamente agregará ".service" y ejecutará el comando "systemctl restart mysql.service".

Administrar los servicios de Ubuntu usando el comando de servicio

Podemos listar todos los servicios usando service --status-all dominio. Si es necesario, use el comando grep para filtrar el servicio que está buscando.

# service --status-all | grep mysql
 [ + ]  mysql
#

En el comando de servicio, primero debemos especificar el nombre del servicio y luego el comando a ejecutar.

Detener un servicio:

# service mysql stop

Iniciar un servicio:

# service mysql start

Reiniciar un servicio:

# service mysql restart

Comprobación del estado del servicio:

# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-05-02 18:19:34 UTC; 39s ago
  Process: 31768 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, s
  Process: 31746 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 31770 (mysqld)
    Tasks: 27 (limit: 2318)
   CGroup: /system.slice/mysql.service
           └─31770 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Scripts de inicio de Ubuntu para administrar servicios

Los scripts de inicio de servicios se encuentran en /etc/init.d/ directorio. Podemos usar estos scripts para administrar los servicios. Sin embargo, ya no se recomienda usarlos y es mejor usar el comando systemctl.

Detener un servicio:

# /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
#

Iniciar un servicio:

# /etc/init.d/mysql start
[ ok ] Starting mysql (via systemctl): mysql.service.
#

Reiniciar un servicio:

# /etc/init.d/mysql restart
[ ok ] Restarting mysql (via systemctl): mysql.service.
#

Comprobación del estado del servicio:

# /etc/init.d/mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-05-02 18:26:30 UTC; 17s ago

Problemas de permisos al iniciar/detener servicios

Si no ha iniciado sesión como usuario raíz, los comandos anteriores le pedirán que proporcione la contraseña de usuario raíz para ejecutar. Si se ingresa una contraseña incorrecta, se generará un error de autenticación fallida y el comando no se ejecutará.

Si está en la lista de sudoers, puede ejecutar estos comandos como usuario sudo. Si no está en la lista de sudoers, se mostrará un mensaje de error que indica que no está en la lista de sudoers y se informará del incidente.

test@localhost:~$ systemctl stop mysql
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to stop 'mysql.service'.
Authenticating as: root
Password: 
polkit-agent-helper-1: pam_authenticate failed: Authentication failure
==== AUTHENTICATION FAILED ===
Failed to stop mysql.service: Access denied
See system logs and 'systemctl status mysql.service' for details.
test@localhost:~$ sudo systemctl stop mysql
[sudo] password for test: 
test is not in the sudoers file.  This incident will be reported.
test@localhost:~$ 

Entonces, si desea administrar algún servicio, asegúrese de tener los privilegios necesarios para ejecutar estos comandos.

Conclusión

Aprendimos varias formas de administrar servicios en Ubuntu. El comando systemctl es el enfoque preferido para iniciar/detener/reiniciar servicios en Ubuntu. Sin embargo, los scripts de inicio imprimen el estado del comando, lo que puede ser útil en los scripts de shell para ejecutarlos y obtener inmediatamente el estado del comando.


Linux
  1. Servicios de inicio, detención y reinicio en el servidor systemd RHEL 7 Linux

  2. Cómo iniciar, detener y reiniciar servicios en un servidor dedicado Linux

  3. Iniciar, reiniciar y detener manualmente Plex Media Server Ubuntu/Debian

  4. Iniciar, detener o reiniciar servicios en CentOS 8 - ¿Proceso paso a paso?

  5. Iniciar, detener y reiniciar Crond Daemon en Linux

Cómo iniciar, detener o reiniciar servicios en Ubuntu 20.04 LTS

Cómo iniciar, detener o reiniciar servicios en CentOS 8

Cómo iniciar, detener y reiniciar servicios en Debian 10

Cómo reiniciar servicios en la línea de comandos de Ubuntu

Cómo iniciar, detener o reiniciar servicios en Ubuntu

Cómo iniciar, detener o reiniciar servicios de red en Rocky Linux 8