ubuntu 20.04 cronjob 在重启时不起作用

ubuntu 20.04 cronjob 在重启时不起作用

我有一个 bash 文件,它只是停止现有的 docker 容器。当我手动运行该脚本时,它工作正常,但它在我的 crontab 上不起作用。我需要在启动电脑时执行 bash 脚本。

Crontab:(启动时不起作用)

@reboot /var/www/airflow/stop_airflow.sh

Bash 内容(stop_airflow.sh)

#!/bin/bash
cd /var/www/airflow && docker-compose stop

终端执行:

bash /var/www/airflow/stop_airflow.sh

输出:

Stopping airflow_airflow-worker_1    ... done 
Stopping airflow_flower_1            ... done 
Stopping airflow_airflow-webserver_1 ... done 
Stopping airflow_airflow-scheduler_1 ... done 
Stopping airflow_redis_1             ... done 
Stopping airflow_postgres_1          ... done

答案1

运行的作业cron不会在与桌面相同的运行时环境中运行。您的任何PATH更改或其他环境变量设置都~/.bashrc不会自动传播到您的cron作业。例如,没有$DISPLAY,因此 GUI 程序需要特殊处理(阅读man xhost)。在您的例子中,您的脚本可能正在寻找,但未docker-compose在您的中找到$PATH

cron人们可以在crontab文件 Read中为所有作业设置环境变量man 5 crontab

echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias查看每个环境中的结果 。

相关内容