Linux Crontab 获取环境变量

使用Laravel分版本环境部署时遇到的问题

Crontab 执行 Laravel 获取不到用户全局变量,通过查阅资料获知 Crontab 载入配置的时候 并未载入 /etc/profile ;
针对这个现象 初期解决方式是在Crontab 任务内添加配置文件载入

  * * * * * source /etc/profile && php task.php
  或
  * * * * * export PHP_ENV=prod && php task.php
  或
  * * * * * /home/user_name/task.sh && php task.php

之后发现配置文件的载入顺序

  • /etc/environment

是系统在登录时读取的第一个文件,用于为所有进程设置环境变量。系统使用此文件时并不是执行此文件中的命 令,而是根据KEY=VALUE模式的代码,对KEY赋值以VALUE,因此文件中如果要定义PATH环境变量,只需加入一行形如 PATH=$PATH:/xxx/bin的代码即可。

  • /etc/profile

是系统登录时执行的第二个文件,可以用于设定针对全系统所有用户的环境变量。

  • ~/.profile

是对应当前登录用户的profile文件,用于定制当前用户的个人工作环境。

  • /etc/bash.bashrc

是针对所有用户的bash初始化文件,在此中设定的环境变量将应用于所有用户的shell中,此文件会在用户每次打开shell时执行一次。

  • ~/.bashrc

是对应当前登录用户的bash初始化文件,当用户每次打开shell时,系统都会执行此文件一次。

经测在 /etc/environment 设置后同样生效

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,380评论 2 33
  • 1.安装cron yum install vixie-cron yum install crontabs vixi...
    Broom阅读 5,033评论 0 1
  • Linux定时任务Crontab命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的。...
    孙燕超阅读 5,796评论 0 4
  • 前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (cro...
    Zcclucky阅读 3,658评论 0 0
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 100,150评论 9 468

友情链接更多精彩内容