关于crontab执行python脚本失效的问题

crontab 环境变量问题

目前写的一个自动替换nginx配置并测试重启的脚本放到crontab里无法执行,每次到os.system(“nginx -t”)这里就会中断,但是手动执行脚本又是正常的。

经查询,在crontab里无法读到系统的环境变量,直接os.system(“nginx -t”)是无法执行,这里会返回错误码,而脚本是在判断返回码为0时才会继续执行,所以在这里就中断了。

正确的写法需要在os.system()里使用绝对路径,如脚本里需要改成os.system(“/usr/sbin/nginx -t”)

如果脚本里有配置路径的话,也不能写成相对路径,需要先判断配置的绝对路径,或直接写成绝对路径。


- - END - -


腾讯云
0%