일부 작업에 대해 단일 인스턴스 크론 작업을 실행하고 있습니다. 내 스크립트는 다음과 같습니다
# every hour interval
0 * * * * php /project/yii daily/order
# every 30 minutes interval
*/30 * * * * php /project/yii daily/sample
https://crontab.guru/
값을 얻는 데 사용합니다 . 일정은 작동하지만 의 경우 order
매시간 실행되도록 설정했지만 대신 5시간마다 실행됩니다. 경로와 스크립트를 확인해 보니 맞네요.
왜 설정된 대로 매시간 실행되지 않는지 궁금합니다.
답변1
실행 중인 작업은 cron
데스크탑과 동일한 런타임 환경에서 실행되지 않습니다. 변경 사항이나 기타 환경 변수 설정은 작업 에 자동으로 전파 PATH
되지 않습니다 . 예를 들어 no 이므로 GUI 프로그램에는 특별한 처리(읽기 )가 필요합니다.~/.bashrc
cron
$DISPLAY
man xhost
cron
환경 변수는 모든 작업에 대한 읽기 파일에서 설정할 수 있습니다 .crontab
man 5 crontab
echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias
각 환경의 결과를 확인하세요.
해당 줄은 기본적으로 해석되기 때문에 command
구문이 그보다 간단하므로 환경을 설정한 후 필요한 프로그램을 호출하는 스크립트(실행 가능, 설치, 시작)를 호출하는 것이 좋습니다.crontab
/bin/sh
/bin/bash
command
bash
#!/bin/bash