论坛首页 编程语言技术论坛

shell脚本控制jar的启动和停止

浏览 28015 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (6)
作者 正文
   发表时间:2012-04-09  
可以了解一下jsvc。
0 请登录后投票
   发表时间:2012-04-09  
这样的直接kill很不安全。
0 请登录后投票
   发表时间:2012-04-10  
kill -9确实不安全

不过楼主的思路很对,一般来说都是有守护Shell进程守护Java进程或者其他类型线程的。

0 请登录后投票
   发表时间:2012-04-10  
yjandx3543 写道
呵呵呵,想起了一个以前写的shell脚本,启动和关闭线程(myshell.sh)。

CLASS_PATH=dayemail.jar
CLASS_PATH=$CLASS_PATH:lib/activation.jar
CLASS_PATH=$CLASS_PATH:lib/classes12.jar
CLASS_PATH=$CLASS_PATH:lib/c3p0-0.9.1.2.jar
CLASS_PATH=$CLASS_PATH:lib/commons-email-1.2.jar
CLASS_PATH=$CLASS_PATH:lib/dom4j-1.6.jar
CLASS_PATH=$CLASS_PATH:lib/jaxen-1.1.1.jar
CLASS_PATH=$CLASS_PATH:lib/jxl.jar
CLASS_PATH=$CLASS_PATH:lib/log4j-1.2.16.jar
CLASS_PATH=$CLASS_PATH:lib/mail.jar

SERVER=/qzpt/mydayemail
cd $SERVER   
  
case "$1" in   
  
  start)   
    nohup java -Dfile.encoding=UTF8 -Xms64M -Xmx256M -cp $CLASS_PATH com.trendsnet.myemail.EmailShell > $SERVER/server.log 2>&1 &   
    echo $! > $SERVER/server.pid   
    ;;   
  
  stop)   
    kill `cat $SERVER/server.pid`   
    rm -rf $SERVER/server.pid   
    ;;   
  
  restart)   
    $0 stop   
    sleep 1   
    $0 start   
    ;;   
  
  *)   
    echo "Usage: myshell.sh {start|stop|restart}"  
    ;;   
  
esac   
  
exit 0  


会自动生成server.pid记录当前线程的PID.
日志文件logger.info形式的日志记录进了Server.log ,当然也可以去掉写入Server.log改用自己的Log4j.

当然,程序里面做了钩子程序,用
引用
于关闭所有正在运行中的东东及保存临时文件。


起停不是目的,你那个CLassPATH的拼接应该用数组更好一些吧,尤其是依赖Jar很多的情况下,不过现在很多时候都是把CLassPath写到Jar里面的CLassPath了,另外起停都好写,关键是要守护,wait子进程,然后还要处理特殊退出码以及trap情形。
0 请登录后投票
   发表时间:2012-04-12  
我也向知道 stop的脚本怎么写,重点是退出的时候保存内存数据
0 请登录后投票
   发表时间:2012-04-17  
java.jsp页面调用本地插件完成对本地文件与服务器上文件的同步更新
有没有写过如题的功能,因为我现在需要每次点jsp页面的 更新按钮时,需要将本地文件的版本与服务器上的文件进行版本对比,将需要更新的文件进行下载,解压,我想通过写插件,完成这种需求,但是没有写过类似的东西,希望写过此功能的拿们,指点。。。。。。。。。。。。。。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics