用jetty-runner.jar 运行程序的脚本

Posted TreeNewBee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用jetty-runner.jar 运行程序的脚本相关的知识,希望对你有一定的参考价值。

今天又补充了点脚本,感觉蛮有用的, 开心~ 

 

先阐述清楚 linux/unix下特性:

一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:
标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。

有时候,程序刚启动会刷日志到std out(console),很烦的~ 今天根据上面的说明, 优化了一下脚本。

 

 

启动脚本

#!/bin/bash
java -Xmx512m -Xms64m -XX:PermSize=256M -XX:MaxPermSize=512M -jar jetty-runner.jar --port 12345 server-0.0.1-SNAPSHOT.war  >/web/program/gw/logs/stdout.log 2>&1 &


echo $! > ./program.pid

 

启动脚本说明:

1. java - jar 和一些jvm参数  
2. jetty-runner.jar 参数
3. 把标准输出、标准错误(1/2) 从定向到/web/program/gw/logs/stdout.log
4. & 后台启动
5. 把程序的pid输出到program.pid

 

关闭脚本

#!/bin/bash
pkill -F ./program.pid
rm ./program.pid

 

关闭脚本简单, 就是一个pkill -F 然后删除文件。

 

小小心得

java -Xmx512m -Xms64m -XX:PermSize=256M -XX:MaxPermSize=512M -jar jetty-runner.jar --port 12345 server-0.0.1-SNAPSHOT.war  >/web/program/gw/logs/stdout.log 2>&1 &

之前是没有上面红色的部分的。问题就是系统启动后,控制台在刷日志, 神烦。 把上面红色的加上, 意思是把标准输出和标准错误都输出到这个文件中。

 

以上是关于用jetty-runner.jar 运行程序的脚本的主要内容,如果未能解决你的问题,请参考以下文章

43 多个相同限定名类型同时存在导致的继承结构混乱的情况

在ubuntu中如何安装shell 脚本程序

普通 java 工程调用 arcobject 功能,打包成独立可运行程序后,用脚本调用

用 crontab 实现开机自动运行脚本

JS脚本怎么运行

如何编写脚本自动运行android studio测试用例