jar文件,快捷启动shell脚本
stop.sh pid=$(ps -ef | grep admin-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}') if [ -z $pid ];then echo "服务未启动" else echo "服务已停止" kill -9 $pid fi echo "" start.sh pid=$(ps -ef | grep admin-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}') # -z 表示为空 if [ -z $pid ]; then nohup java -Dloader.path=lib/ -jar admin-demo-0.0.1-SNAPSHOT.jar >out.log 2>&1 & pid=$(ps -ef | grep admin-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}') echo "服务已启动!pid:${pid}" else echo "服务已在运行中" fi
转载别人 ↓
#!/bin/sh # 定义变量 JAR_NAME="$2.jar" # 监听端口 ADD_PORT="$3" # help获取使用方法 help() { echo "" echo "please use command: sh start.sh [start|stop|restart|status|debug] [version] || [ADD_PORT]" echo "For example: sh start.sh start 1.0.1" echo "debug For example: sh start.sh debug demo1.0 | sh start.sh debug demo1.0 6156" echo "" exit 1 } # 该方法会重新启动程序 debug() { # 查看pid,先杀掉,再运行jar pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}') # 设置默认监听端口 if [ -z $ADD_PORT ]; then ADD_PORT="51135" echo "......default Listen on port for DEBUG:${ADD_PORT}" fi # -z 表示为空 if [ ! -z $pid ]; then kill -9 $pid echo "" echo "......kill -9 ${pid}....." nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$ADD_PORT -Dloader.path=lib/ -jar $JAR_NAME >debugOut.log 2>&1 & pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}') echo "" echo "debug Service ${JAR_NAME} is starting!newPid:${pid}, Listen on port:${ADD_PORT}" echo "......debug restart: success......" echo "" else nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$ADD_PORT -Dloader.path=lib/ -jar $JAR_NAME >debugOut.log 2>&1 & pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}') echo "" echo "debug Service ${JAR_NAME} is starting!pid:${pid}, address:${ADD_PORT}" echo "......debug Start: success......" echo "" fi } # 启动方法 start() { # 重新获取一下pid pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}') # -z 表示为空 if [ -z $pid ]; then nohup java -Dloader.path=lib/ -jar $JAR_NAME >out.log 2>&1 & pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}') echo "" echo "Service ${JAR_NAME} is starting!pid:${pid}" echo ".........Start success........" else echo "" echo "Service ${JAR_NAME} is already running,it's pid:${pid}. If necessary." echo "please use command:[sh start.sh stop [version] | sh start.sh restart [version]]." echo "" fi } # 停止方法 stop() { # 重新获取一下pid pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}') # -z 表示为空 if [ -z $pid ]; then echo "" echo "Service ${JAR_NAME} is not running!" echo "" else kill -9 $pid echo "" echo "Service stop success!pid:${pid}" echo "" fi } # 输出运行状态方法 status() { # 重新获取一下pid pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}') # -z 表示为空 if [ -z $pid ]; then echo "" echo "Service ${JAR_NAME} is not running!" echo "" else echo "" echo "Service ${JAR_NAME} is running. It's pid=${pid}" echo "" fi } # 重启方法 restart() { echo ".................Restarting................." pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}') # -z 表示为空 if [ ! -z $pid ]; then kill -9 $pid fi start echo "" } # 根据输入参数执行对应方法 case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; "-h") help ;; "debug") debug ;; esac