1,编译一个java文件为a.class。
2,编写shell脚本b
.sh
。
#!/bin/bash
java a.class 3,放在同一目录下运行shell即可。如果要后台运行,bash
b.sh&
你是要单次运行还是不挂断在后台运行?单次直接java -jar xxx.jar 就可以了,不挂断的话,可以编写一个shell脚本,start.sh 内容如下#!/bin/sh
nohup java -jar -XX:PermSize=64m -XX:MaxPermSize=128m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:SurvivorRatio=8 xxx.jar>/dev/null 2>&1 &
具体的参数你自己把握,然后保存,给这个脚本赋于可执行权限,chmod +x start.sh
然后执行这个脚本,sh start.sh ,然后查看一下java进程,看这个服务起来没有,jps
这个是startup.sh的脚本#!/bin/bash
java -Xms512m -Xmx1024m -classpath lib/antlr-2.7.6.jar:lib/commons-collections-3.2.jar:lib/jta.jar ...... xx.MainClass%1 %2
java -cp "$CLASSPATH" xx.MainClass>console.log &echo $! >MainClass.pid &
MainClass是我服务器的启动入口main所在的类.
脚本也是看到网上其他朋友写的,这个脚本在服务器启动的同时将pid写到MainClass.pid中下面的是restart.sh脚本
#!/bin/bash
cat MainClass.pid | xargs kill -9
java -Xms512m -Xmx1024m -classpath lib/antlr-2.7.6.jar:lib/commons-collections-3.2.jar:lib/jta.jar ...... xx.MainClass%1 %2这个脚本就是先关闭pid为MainClass.pid的进程
然后再启动.
问题是在服务器启动后,利用ps -aux查看进程,没有发现MainClass.pid的值
java.exe的pid是另外一个值...
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)