锁定老帖子 主题:shell脚本控制jar的启动和停止
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (6)
|
|
---|---|
作者 | 正文 |
发表时间:2012-03-31
最好还是不要直接KILL-9 ,可以去试试KILL -15回调一个程序里的方法来手动停止各线程,这样会比较安全,而且防止数据丢失
|
|
返回顶楼 | |
发表时间:2012-03-31
a_alter 写道 这样强行KILL 你不怕数据丢失么? 在主线程中写一个hook,开一个serversocket用于关闭。
严重同意你的做法! |
|
返回顶楼 | |
发表时间:2012-03-31
在程序中中增加一个hook,jvm退出时会执行hook中的代码
Runtime.getRuntime().addShutdownHook(Thread); kill -15 (SIGTERM)能够执行hook中代码 kill -9 (SIGKILL) 不能够执行hook中代码 |
|
返回顶楼 | |
发表时间:2012-03-31
这样直接kill,内存数据不全丢了么?得先做判断吧
|
|
返回顶楼 | |
发表时间:2012-03-31
建议启动的时候将shell脚本的PID记录到文件里面,然后关闭的时候就可以直接读文件获取PID,避免用ps查询了,有可能不准确的
|
|
返回顶楼 | |
发表时间:2012-04-01
cnmcxiari 写道 最好还是不要直接KILL-9 ,可以去试试KILL -15回调一个程序里的方法来手动停止各线程,这样会比较安全,而且防止数据丢失
我也觉得直接kill -9这样太暴力了吧,最好是发送一个关闭命令之类的,这样可以做一些清理工作 |
|
返回顶楼 | |
发表时间:2012-04-02
最后修改:2012-04-02
楼主加上grep -v grep去掉grep进程就更好拉!!!
-9也最好去掉 #停止方法 stop(){ ps -ef|grep test|grep -v grep|awk '{print $2}'|while read pid do kill $pid done } |
|
返回顶楼 | |
发表时间:2012-04-04
你这应用能不能 实现类似 nginx 那样接收 信号量呢 是不是更好呢
|
|
返回顶楼 | |
发表时间:2012-04-04
最后修改:2012-04-05
呵呵呵,想起了一个以前写的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. 当然,程序里面做了钩子程序,用于关闭所有正在运行中的东东及保存临时文件。 |
|
返回顶楼 | |
发表时间:2012-04-06
属于刚学shell几天的人拿来练手的shell
|
|
返回顶楼 | |