今天发现一个关于crontab奇怪的问题,如果手动执行monitor.sh(启动一个程序,首先检测其是否运行,如果不运行就启动它)没问题,启动程序了,但是如果把其放到crontab中定时启动就无法连接数据库了,经过仔细检查发现问题所在:环境变量。因为程序中用到了odbc和oracle的连接,而且设置了环境变量,放在了/etc/profile中,每次启动终端时都会执行/etc/profile,所以手动执行monitor.sh没问题,如果使用crontab执行monitor.sh就没有设置环境了,所以执行连接oracle数据库失败了。解决办法:在monitor.sh中写入 ". /etc/profile" 即可
阅读(909) | 评论(0) | 转发(0) |