服务器如果关机,应用比较多的话,需要重启把所有程序启动一遍。
在网上找了一些脚本,综合改了一个新的出来。
以后启动就可以少写一些命令了。
启动命令
假定项目名字是fileserver, 文件服务器,用来上传和下载
./start.sh jar包目录 jar包文件名称 日志文件名称
./start.sh /opt/fileserver fileserver-1.00.jar fileserver_log.log
脚本名称start.sh
#!/bin/bash
# -------------------------------------------
# linux下运行jar包的方式如下
# -------------------------------------------
# java -jar xxx.jar
# 当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
# -------------------------------------------
# java -jar xxx.jar &
# 当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
# -------------------------------------------
# nohup Java -jar xxx.jar &
# 后台运行命令,当账户退出或终端关闭时,程序仍然运行,控制台输出到nohup.out文件
# -------------------------------------------
# nohup Java -jar xxx.jar >/dev/null 2>&1 &
# 后台运行命令, 控制台输出丢弃
# -------------------------------------------
# -------------------------------------------
# jar 包启动脚本
# $1 APP 目录
# $2 APP 名称
# $3 LOG 名称
# -------------------------------------------
APP_DIR=$1
APP_NAME=$2
LOG_NAME=$3
echo : [app dir] $APP_DIR
echo : [app name] $APP_NAME
echo : [log name] $LOG_NAME
# -------------------------------------------
# 配置日志目录
# -------------------------------------------
LOG_DIR=$APP_DIR/logs
LOG_FILE=$LOG_DIR/$LOG_NAME
echo : [log dir] $LOG_DIR
echo : [log file] $LOG_FILE
# -------------------------------------------
# 查找应用是否正在运行,如果在运行,就杀掉这些进程
# -------------------------------------------
pid=`ps -ef | grep java |grep $APP_NAME | grep -v grep |awk '{print $2}'`
echo $pid
if [ -n "$pid" ]; then
echo : $APP_NAME is running pid=$pid
echo : kill $APP_NAME
kill -9 $pid
fi
cd $APP_DIR
nohup java -jar -Denv=rc $APP_NAME >/dev/null 2>&1 &
tail -f $LOG_FILE
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。