关于crontab执行python的os.system 失败问题
crontab 环境变量问题
目前写的一个自动替换nginx配置并测试重启的脚本放到crontab里无法执行,每次到os.system(“nginx -t”)这里就会中断,但是手动执行脚本又是正常的。
经查询,在crontab里无法读到系统的环境变量,直接os.system(“nginx -t”)是无法执行,这里会返回错误码,而脚本是在判断返回码为0时才会继续执行,所以在这里就中断了。
正确的写法需要在os.system()里使用绝对路径,如脚本里需要改成os.system(“/usr/sbin/nginx -t”)
如果脚本里有配置路径的话,也不能写成相对路径,需要先判断配置的绝对路径,或直接写成绝对路径。

浙公网安备 33010602011771号