Cómo poner un comando que inicie automáticamente el demonio antes de iniciar sesión en el servidor Ubuntu 20.04

Cómo poner un comando que inicie automáticamente el demonio antes de iniciar sesión en el servidor Ubuntu 20.04

Tengo dos programas en el servidor Ubuntu 20.04, que se encuentran en:

 /home/kiko/go-btfs/cmd/btfs
 /home/kiko/node5007/cmd/btfs

Ambos se ejecutan con el comando: ./btfs daemon¿Cómo hacer que este comando para que ambos directorios se inicien automáticamente antes de iniciar sesión en el servidor? Intenté crear un servicio de inicio automático sudo nano /etc/systemd/system/btfs_main.servicey luego puse las siguientes configuraciones en la unidad btfs_main.service:

[Unit]
Description=Starting_btfs_daemon

Wants=network.target
After=syslog.target network-online.target

[Service]
Type=simple
ExecStart=/home/kiko/go-btfs/cmd/btfs/./btfs daemon
ExecStart=/home/kiko/node5007/cmd/btfs/./btfs daemon
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

y luego: sudo systemctl daemon-reload, sudo systemctl enable btfs_main.service, sudo systemctl start btfs_main.service, systemctl status btfs_main.service. Con el comando final tengo algún error: Unit btfs_main.service has a bad unit file setting. ¿Cómo configuro los ajustes de la unidad para que ambos comandos se ejecuten automáticamente?

Respuesta1

Puede utilizar el archivo /etc/rc.local para iniciar su script después de reiniciar el servidor.

Entonces, los pasos que debe seguir son los siguientes:

  1. Primero cree /etc/rc.localel archivo y hágalo ejecutable. Esta nube se realizará mediante chmod a+x /etc/rc.localcomando.
  2. Ahora crea /etc/systemd/system/rc-local.serviceel archivo. Después de crear el archivo de servicio systemd, agréguele el siguiente contenido.
[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target
  1. Después de eso, habilite el servicio al iniciar el sistema:

systemctl habilitar rc-local

  1. Ahora inicie el servicio y verifique su estado:

systemctl inicia rc-local.service

estado systemctl rc-local.servicio

Debería obtener un resultado como el de la imagen de abajo. ingrese la descripción de la imagen aquí

  1. Ahora coloque sus scripts en el /etc/rc.localarchivo y hágalos ejecutables.
  2. Reinicie el servidor y verifique los resultados.

información relacionada