Tengo un servidor vultr en ubuntu, así que 20.04, estoy creando un script bash en el siguiente directorio
/startupscripts/apilibro
Dentro del script necesito iniciar mi servidor Directus ejecutando Yarn Directus Start.
!#/bin/bash
cd /var/www/vhosts/librocambio.cl/core.librocambio.cl/apilibro
/usr/bin/yarn directus start
Le doy chmod 755 para leer, escribir y ejecutar el script, finalmente ejecuto crontab -e y agrego el siguiente código para ejecutar cuando se reinicia el servidor
@reboot /startupscripts/apilibro
Mi problema es que el comando de inicio de Yarn Directus no se ejecuta, cuando lo ejecuto localmente el comando funciona, pero al reiniciar Ubuntu no funciona, finalmente pruebo el script bash agregando una línea como touch index.js y funciona, pero hilo. El comando directus start no se ejecuta.
¿Alguna idea de cómo solucionar este problema?
Respuesta1
1er camino,
Creo que puedes usar el comando para consultar el registro de crond.
tail -f /var/log/cron.log
el resultado aquí podría brindarle algo de información.
si no hay cron.log, use este comando y reinicie el servicio rsyslog
sed -i '/#cron.*/s/^#//g' /etc/rsyslog.d/50-default.conf
systemctl restart rsyslog.service
2do
¿Quizás el env del hilo no coincide con su uso? ¿Quién dirige el crond?
Respuesta2
Problema resuelto, esto es lo que hice para resolver mi problema.
- Ejecuté el script manualmente usando bash apilibro, así que noté que el hilo no estaba presente en mis variables de entorno, solo lo agregué como dice @Artur Medim.
- Noto que mi versión de nodejs era 10.xx por defecto, cuando la cambié usando nvm funciona, pero cuando reinicié el sistema o cierro mi terminal ssh, la versión de nodejs cambió a la predeterminada, así que actualicé correctamente mi versión a 16. xx para asegurarse de que esto no esté sucediendo.
Después de eso pude ejecutar el script manualmente y en cronjob, gracias a todos por sus respuestas.