Comparto este tutorial, muy util para automatizar el inicio automatico de nuestra aplicación de rails, ideal para cuando el servidor se reinicia.
Paso 1: Crear el Script de Inicio
Primero, asegúrate de tener un script que se encargue de iniciar tu aplicación de Rails.
Vamos a suponer que tu aplicación está ubicada en /home/myapp
y que usas asdf para manejar Ruby.
crear el archivo /home/app/start.sh
#!/bin/bash
cd /home/insights_tecnm
rm /home/myapp/tmp/pids/production.pid
source /home/myapp/.asdf/asdf.sh
bundle exec rails server -e production -p 3000 --pid /home/myapp/tmp/pids/production.pid
Haz que el script sea ejecutable:
chmod +x /home/myapp/start.sh
Crear un archivo en: /etc/systemd/system/myapp.service
[Unit]
Description=My Rails App
After=network.target
[Service]
Type=simple
User=tu_usuario
WorkingDirectory=/home/myapp/
ExecStart=/home/myapp/start.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
Paso 3: Habilitar y Iniciar el Servicio
Después de crear el archivo del servicio, necesitas habilitarlo para que se ejecute al iniciar el sistema y luego iniciarlo manualmente por primera vez.
Recarga los archivos de servicio para asegurarte de que systemd
reconozca tu nuevo servicio:
sudo systemctl daemon-reload
Habilita el servicio para que se inicie al arrancar el sistema:
sudo systemctl enable myapp.service
Inicia el servicio manualmente:
sudo systemctl start myapp.service
Paso 4: Verificar el Estado del Servicio
Para asegurarte de que tu aplicación de Rails está corriendo y para verificar cualquier problema potencial, puedes revisar el estado del servicio:
sudo systemctl status myapp.service
Reinicia tu servidor, y si tu aplicación incio, felicidades lo logramos!!