Ubuntu 20.04 @reboot cronjob não executa script

Ubuntu 20.04 @reboot cronjob não executa script

Eu tenho um servidor vultr em um Ubuntu então 20.04, estou criando um script bash no seguinte diretório

/startupscripts/apilibro

Dentro do script eu preciso iniciar meu servidor Directus executando o Yarn Directus Start

!#/bin/bash
cd /var/www/vhosts/librocambio.cl/core.librocambio.cl/apilibro
/usr/bin/yarn directus start

Dou chmod 755 para ler, escrever e executar o script, finalmente executo crontab -e e adiciono o seguinte código para executar quando o servidor for reiniciado

@reboot /startupscripts/apilibro

Meu problema é que o comando yarn directus start não roda, quando executo localmente o comando funciona, mas na reinicialização do ubuntu não funciona, finalmente testei o script bash adicionando uma linha como touch index.js e funciona, mas yarn O comando directus start não é executado.

Alguma ideia de como resolver esse problema?

Responder1

1ª maneira,

eu acho que você pode usar o comando para verificar o log do crond

tail -f /var/log/cron.log

a saída aqui pode fornecer algumas informações.

se não houver cron.log, use este comando e reinicie o serviço rsyslog

sed -i '/#cron.*/s/^#//g' /etc/rsyslog.d/50-default.conf

systemctl restart rsyslog.service

talvez o ambiente do fio não corresponda ao seu uso, quem dirige o crond?

Responder2

Problema resolvido, foi o que fiz para resolver o meu problema.

  1. Executei o script manualmente usando bash apilibro, então percebi que o fio não estava presente nas minhas variáveis ​​de ambiente, apenas adicionei como disse @Artur Medim.
  2. Percebo que minha versão do nodejs era 10.xx por padrão, quando mudei usando nvm funciona, mas quando reiniciei o sistema ou fechei meu terminal ssh, a versão do nodejs mudou para o padrão, então atualizei corretamente minha versão para 16. xx para ter certeza de que isso não está acontecendo.

Depois disso pude executar o script manualmente e no cronjob, obrigado a todos pelas respostas.

informação relacionada