Ubuntu 20.04 @reboot cronjob이 스크립트를 실행하지 않습니다.

Ubuntu 20.04 @reboot cronjob이 스크립트를 실행하지 않습니다.

우분투에 vultr 서버가 있으므로 20.04이므로 다음 디렉토리에 bash 스크립트를 만들고 있습니다.

/startupscripts/apilibro

스크립트 내에서 Yarn directus start를 실행하는 directus 서버를 시작해야 합니다.

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

스크립트를 읽고 쓰고 실행하기 위해 chmod 755를 제공하고 마지막으로 crontab -e를 실행하고 서버가 다시 시작될 때 실행할 다음 코드를 추가합니다.

@reboot /startupscripts/apilibro

내 문제는 Yarn directus start 명령이 실행되지 않는다는 것입니다. 로컬로 실행하면 명령이 작동하지만 우분투 재부팅에서는 작동하지 않습니다. 마침내 bash 스크립트를 테스트하여 touch index.js로 줄을 추가하면 작동하지만 원사가 작동합니다. directus start 명령이 실행되지 않습니다.

이 문제를 해결하는 방법을 아시나요?

답변1

첫 번째 방법,

나는 당신이 crond의 로그를 확인하기 위해 명령을 사용할 수 있다고 생각합니다

tail -f /var/log/cron.log

여기의 출력은 몇 가지 정보를 제공할 수 있습니다.

cron.log가 없으면 이 명령을 사용하고 rsyslog 서비스를 다시 시작하십시오.

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

systemctl restart rsyslog.service

2위

아마도 원사의 환경이 크론드를 운영하는 귀하의 용도와 일치하지 않을까요?

답변2

문제 해결됨, 이것이 내 문제를 해결하기 위해 수행한 작업입니다.

  1. bash apilibro를 사용하여 수동으로 스크립트를 실행했는데, 원사가 내 환경 변수에 없다는 것을 알았고 방금 @Artur Medim이 말한 대로 추가했습니다.
  2. 내 nodejs 버전이 기본적으로 10.xx라는 것을 알았습니다. nvm을 사용하여 변경하면 작동하지만 시스템을 재부팅하거나 SSH 터미널을 닫으면 nodejs 버전이 기본값으로 변경되므로 내 버전이 16으로 올바르게 업데이트되었습니다. xx 이런 일이 일어나지 않도록 하세요.

그 후에는 cronjob에서 수동으로 스크립트를 실행할 수 있었습니다. 답변해 주신 모든 분들께 감사드립니다.

관련 정보