linux中crontab定时任务启动Java程序碰到的问题
2013-03-26 09:25
232 查看
最近工作需求,需要在Linux中启动定时任务,每隔2分钟调用一个Java程序,碰到一系列的问题,总结如下
1.crontab定时任务如果指定了结果输出流文件,则要输入 2>&1 才会将结果输出到指定的文件,如
如果要将标准流与错误流输出到Linux回收站中,即不显示任何东西,则需要加上 /dev/null 如
2 在Linux定时器当前目录会产生问题,如果Java工程需要在同级目录下加载一些配置文件(如连接数据库的信息),则当前目录会加载不到,此时,可以在java命令设置当前路径系统属性,程序中根据该属性动态加载配置文件
在程序中可以用
3 Java工程中的log4j日志输出文件一般都是配置在当前目录下,而在Linux定时器中会有问题,即当前目录并不是Java程序所在的目录了,而log4j配置文件又在Java程序源文件中,则可以将log4j.properties提取出来,在Java工程中动态加载
4 手动执行启动Java程序没有问题,Linux定时器启动Java程序会丢失环境变量的配置,需要在shell脚本中加入环境变量
1.crontab定时任务如果指定了结果输出流文件,则要输入 2>&1 才会将结果输出到指定的文件,如
*/2 * * * * /opt/a8box/mb_umdtasker/create_umd.sh >/opt/a8box/mb_umdtasker/out.log 2>&1
如果要将标准流与错误流输出到Linux回收站中,即不显示任何东西,则需要加上 /dev/null 如
*/2 * * * * /opt/a8box/mb_umdtasker/create_umd.sh >/opt/a8box/mb_umdtasker/out.log /dev/null 2>&1
2 在Linux定时器当前目录会产生问题,如果Java工程需要在同级目录下加载一些配置文件(如连接数据库的信息),则当前目录会加载不到,此时,可以在java命令设置当前路径系统属性,程序中根据该属性动态加载配置文件
setsid java -Dbase_dir="/opt/a8box/mb_umdtasker/" -jar /opt/a8box/mb_umdtasker/mb_content_umdtasker.jar
在程序中可以用
String path = System.getProperty("base_dir");
3 Java工程中的log4j日志输出文件一般都是配置在当前目录下,而在Linux定时器中会有问题,即当前目录并不是Java程序所在的目录了,而log4j配置文件又在Java程序源文件中,则可以将log4j.properties提取出来,在Java工程中动态加载
String path = System.getProperty("base_dir"); File log4jfile = new File(path+"/"+"log4j.properties"); if(log4jfile.exists()){ PropertyConfigurator.configure(path+"/"+"log4j.properties"); }
4 手动执行启动Java程序没有问题,Linux定时器启动Java程序会丢失环境变量的配置,需要在shell脚本中加入环境变量
source /etc/profile setsid java -Dbase_dir="/opt/a8box/mb_umdtasker/" -jar /opt/a8box/mb_umdtasker/mb_content_umdtasker.jar
相关文章推荐
- Linux后台启动程序以及打开XShell连接运行java -jar然后关闭连接程序不再运行问题
- linux下crontab定时执行java程序,java程序不执行的问题
- Linux后台启动程序以及打开XShell连接运行java -jar然后关闭连接程序不再运行问题
- 解决Linux服务启动Java程序日志文件出现中文乱码的问题
- Linux下启动hadoop程序出现java.lang.NoClassDefFoundError问题
- linux下crontab定时执行java程序,java程序不执行的问题
- Linux 下分析Java程序CPU使用高的问题
- Java程序调用Linux命令时的重定向问题
- Java程序在内网的linux系统上启动报错(配置DNS后)
- linux下启动java程序的通用脚本2
- 不错的linux下通用的java程序启动脚本(转载)
- 【Shell】 Linux下启动java程序的通用脚本sh
- linux下通用的java程序启动脚本
- (转)使用Java Service Wrapper将java程序作为linux服务并且开机自动启动
- 不错的linux下通用的java程序启动脚本(转载)
- linux系统下memcached启动正常但程序无法连接的问题解决
- 如何把java程序作为Linux服务启动
- linux下Java程序中插入DB中国的数据乱码问题
- linux下通过.sh文件启动java程序
- Linux 环境 简单启动 Java程序