Linux Crontab 获取环境变量配置解析
使用Laravel分版本环境部署时遇到的问题
Crontab执行Laravel获取不到用户全局变量,通过查阅资料获知Crontab载入配置的时候并未载入/etc/profile;
针对这个现象初期解决方式是在Crontab任务内添加配置文件载入
*****source/etc/profile&&phptask.php 或 *****exportPHP_ENV=prod&&phptask.php 或 *****/home/user_name/task.sh&&phptask.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设置后同样生效
总结
以上所述是小编给大家介绍的LinuxCrontab获取环境变量配置解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。