1、nohup启动java main程序
nohup:(no hang up) 不挂起的意思,一般形式:nohup command &
原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用。
#!/bin/bash
echo [`date`] starting xx ......
rm *.log
rm nohup.*
cs='.:'
curr="`pwd`/bin"
libpath="`pwd`/lib/"
FILES=`ls $libpath`
for txt in $FILES;do
cs=$cs$libpath$txt:
done
cs=$cs$curr
echo $cs
#如果存在,删除脚本启动的后台进程
pid=`cat index.pid`
kill -9 $pid
# throws Exception 堆栈信息会输出到nohup.err try的话,只打印日志,程序会绕过这个错误继续运行 。catch里抛出异常(可以是自定义,或添加日志信息)。
nohup java -Dspuindex -Xms256m -Xmx1024m -XX:-UseGCOverheadLimit -cp $cs com.dhgate.spu.analysis.index.IndexMain $* 1>nohup.out 2>nohup.err &
#当前进程保持到index.pid文件
echo $! >index.pid&
$ ./stat_attrval.sh 13100
[Mon Apr 14 16:56:50 CST 2014] starting stat StatAttrValMain......
.:/home/search/lib/commons-io-2.1.jar:/home/search/lib/commons-lang-2.6.jar:/home/search/xx/bin
./stat_attrval.sh: line 19: kill: (12032) - No such process
$ nohup: appending output to `nohup.out'
2、调用web service 中的main ,放到web project目录下,引用web下的类
#!/bin/bash
classes='/home/search/tomcat6-job/webapps/xxproject/WEB-INF/classes'
libpath='/home/search/tomcat6-job/webapps/xxproject/WEB-INF/lib/'
FILES=`ls $libpath`
cs=''
for txt in $FILES;do
cs=$cs$libpath$txt:
done
cs=$cs$classes
java -cp $cs com.xx.xx.service.SellerCacheServiceMain $1