Servicio systemctl start/stop: Cómo configurar Upstart Script y Respawn Process en Ubuntu, CentOS, Redhat Linux
Publicado: 2021-06-09¿Cómo escribir un script de inicio para systemd?
systemd
es la última service management utility
en todas las versiones más recientes de la distribución de Linux, como Ubuntu OS, Redhat OS, CentOS.
Es por eso que la versión Ubuntu 17.4 y Redhat 7.4 ahora es compatible systemctl command
como un script advenedizo. Si tiene una versión anterior del sistema operativo Linux, es posible que deba consultar la parte inferior de esta página para ver init.d script
anterior.
Vamos a discutir las cosas a continuación en este tutorial.
- Configuración de la unidad de servicio systemd
- ¿Cómo
configure
systemd? - ¿Cómo
enable
systemd? - ¿Cómo iniciar el proceso automáticamente usando systemd?
- ¿Cómo detener y
respawn
el proceso usando systemd?
Pasos de configuración para este tutorial:
Prerequisite:
hemos compilado la versión del programa CrunchifyAlwaysRunningProgram.java en la carpeta /tmp/crunchify
. Este proceso Java seguirá ejecutándose en segundo plano para siempre. Puede descargar el programa desde aquí.
Una vez que lo descargue, try to compile
y ejecutarlo para asegurarse de que funciona.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root @ crunchify : / tmp / crunchify # ls -ltr - rw - r -- r -- 1 root root 120 Oct 6 17 : 57 crunchify . tar . gz drwxr - xr - x 2 root root 4096 Oct 6 18 : 01 tomcat drwxr - xr - x 2 root root 4096 Oct 6 18 : 02 java - rw - r -- r -- 1 root root 621 Oct 7 16 : 06 package - rwxrwxrwx 1 root root 838 Oct 7 16 : 07 CrunchifyAlwaysRunningProgram . java - rwxrwxrwx 1 root root 1295 Oct 8 14 : 38 CrunchifyAlwaysRunningProgram . class root @ crunchify : / tmp / crunchify # javac CrunchifyAlwaysRunningProgram.java root @ crunchify : / tmp / crunchify # java CrunchifyAlwaysRunningProgram always running program == > Sun Oct 08 14 : 39 : 14 UTC 2017 always running program == > Sun Oct 08 14 : 39 : 16 UTC 2017 . . . . . . . . . |
Puede escribir CTRL + C
para salir del programa.
Ahora comencemos a configurar el script de inicio automático de systemd para el programa anterior.
Paso 1
- Ir a la carpeta /lib/systemd/system
- Escriba
cd /lib/systemd/system
Paso 2
- cree el archivo
crunchify.service
(cambie el nombre del archivo en consecuencia) - poner debajo del contenido en él
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[ Unit ] Description = Crunchify Java Process Restart Upstart Script After = auditd . service systemd - user - sessions . service time - sync . target [ Service ] User = root TimeoutStartSec = 0 Type = simple KillMode = process export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin WorkingDirectory =/ tmp / crunchify ExecStart =/ opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram Restart = always RestartSec = 2 LimitNOFILE = 5555 [ Install ] WantedBy = multi - user . target |

Paso 3
- Guardar el archivo
- Proporcione permiso de ejecución usando
chmod 755 crunchify.service
Etapa 4
- Cargue crunchify.service usando el comando
systemctl daemon-reload
- Habilite crunchify.service usando el comando
systemctl enable crunchify.service
- Inicie crunchify.service usando el comando
systemctl start crunchify
- Verifique el estado de crunchify.service usando el comando
systemctl status crunchify
Paso-5
- ¿Ahora verifique si el proceso se está ejecutando o no?
- Escriba el comando
ps -few | grep java
ps -few | grep java
para ver todos los procesos de Java en ejecución - Debería ver algo como esto
1 2 3 |
root @ crunchify : / lib / systemd / system # ps -few | grep java root 28631 1 0 14 : 02 ? 00 : 00 : 03 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28853 28226 0 14 : 46 pts / 0 00 : 00 : 00 grep java |
Eso significa que el proceso 28631
está comenzando a usar su script advenedizo. Es posible que tenga un ID de proceso diferente.
¿Cómo verificar si su systemd crunchify.service está funcionando o no?
- Intente matar el proceso usando
kill -9 28631
y debería ver que se debe crear un nuevo proceso automáticamente. - En mi caso, se creó el nuevo proceso ID
28887
1 2 3 4 |
root @ crunchify : / lib / systemd / system # kill -9 28631 root @ crunchify : / lib / systemd / system # ps -few | grep java root 28887 1 17 14 : 48 ? 00 : 00 : 00 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28900 28226 0 14 : 48 pts / 0 00 : 00 : 00 grep java |
Video: ejemplo completo de configuración de secuencia de comandos upstart de systemd en vivo:
Este video contiene: ¿Cómo configurar el script de inicio/upstart de systemd en CentOS, Redhat, Ubuntu Linux OS?
- Cómo ejecutar automáticamente el script de shell en el arranque de inicio
- Cómo crear un servicio systemd en Linux (CentOS 7)
- ¿Cómo configurar un servicio de Linux para que se inicie automáticamente?
- Script de inicio del sistema Centos 7
- Script de inicio del sistema Ubuntu
¿Quieres saber más sobre systemd? Aquí hay una hoja de trucos para su referencia.
Espero que aprenda everything about systemd command
y la configuración de secuencias de comandos upstart en todos los tipos de sistemas operativos Linux.
DETENER: SOLO para versiones anteriores del sistema operativo
Si está ejecutando una older version
de Redhat, Ubuntu, CentOS, necesitará tener un script en este formato.
- Ir a
/etc/init
- Crear archivo
crunchify.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Run Crunchify's Java program indefinitely # description "Crunchify Java Process Restart Upstart Script" author "Crunchify.com (App Shah)" start on runlevel [ 2345 ] stop on runlevel [ ! 2345 ] respawn respawn limit 10 5 script su - root < < 'EOF' export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin exec / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram EOF end script |
- Simplemente inicie el servicio usando el
service crunchify start
- Siga los mismos pasos de verificación que arriba
Avíseme si ve algún problema al ejecutar el script advenedizo en su entorno. Disfruta tu día y feliz codificación.