crontab不像在bash环境下直接能运行某些程序,有些程序手工执行没问题,crontab就不行,它没有环境变量,所以需要导入环境变量才能执行定时的脚本程序可以用一下几种方法解决:
1、 开头几句:SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/ (以上参数含义,可以网上搜一下)
2、export导入(如果export不正常的情况下java程序可能会出现乱码):
PATH=/usr/j2sdk1.4***/bin
export PATH
脚本命令;
3、开头几句写:source /home/username/.bash_profile
cd $JAVA_HOME 然后执行程 这个位置在换为 jar文件的目录的时候就好了
4、如果还不行,可能是该版本的linux不支持source,把/home/username/.bash_profile文件的内容全都拷贝到脚本中再试
#!/bin/sh
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
PATH=/usr/local/jdk/bin
export PATH
source /home/hanzq/.bash_profile;
echo 'start kill ali task.'
for pid in $(ps aux | grep aliossupload | awk -F' ' '{print $2}')
do
kill -9 $pid;
echo 'kill id : '$pid;
done
echo uploadstartover >> /home/hanzq/aliossuploadend.log
#cd $JAVA_HOME;
cd /home/hanzq/
java -jar /home/hanzq/aliossuploadend.jar 192.168.4.11 >> /home/hanzq/aliossuploadend.log
crontab 运行java程序的异常——crontab配置环境变量
最新推荐文章于 2022-01-30 14:09:24 发布