我写了一个java程序,有main方法入口,已经打包一个jar,并已经能在unix下启动运行,但我想写个脚本文件,方便管理人员去启动和关闭我的java进程. 类似于tomcat的startup.sh,shutdown.sh ,但不能具体如何写,我查过资料,大概原理是启动java进程后,获得进程pid,pid保存到一个文件中,关闭时,读取这个文件,获得pid,kill pid. 具体怎样写不知道,请熟悉这方面的帮忙写写,谢谢.
我的第一个可执行脚本:
#!/bin/sh
SERVER=/home/java/server
cd $SERVER
case "$1" in
start)
nohup java -Xmx128m -jar server.jar > $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: run.sh {start|stop|restart}"
;;
esac
exit 0
我的第一个可执行脚本:
CLASS_PATH=myReminder.jar
CLASS_PATH=$CLASS_PATH:lib/classes12.jar
CLASS_PATH=$CLASS_PATH:lib/log4j-1.2.16.jar
CLASS_PATH=$CLASS_PATH:lib/dom4j-1.6.jar
CLASS_PATH=$CLASS_PATH:lib/jaxen-1.1.1.jar
SERVER=/qzpt/mysms
cd $SERVER
case "$1" in
start)
nohup java -Dfile.encoding=UTF8 -Xms64M -Xmx256M -cp $CLASS_PATH com.trendsnet.myReminder.ReminderShell > $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