Linux运行进程批处理命令

第一步新建xxx.sh文件

第二步编写以下脚本(注:需要将运行文件名以及日志路径改成自己的)

# jar包路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
JAR_NAME="accountingMiniProgram-0.0.1-SNAPSHOT.jar"
# 日志路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
LOG_PATh=account.log
# 如果输入格式不对,给出提示!
tips() {
        echo ""
        echo "WARNING!!!......Tips, please use command: sh auto_deploy.sh [start|stop|restart|status].   For example: sh auto_deploy.sh start  "
        echo ""
        exit 1
}
# 启动方法
start() {
        # 重新获取一下pid,因为其它操作如stop会导致pid的状态更新
        pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
        # -z 表示如果$pid为空时执行
        if [ -z $pid ]; then
                nohup java -jar $JAR_NAME > $LOG_PATh &
                echo "启动${JAR_NAME}"
        fi
}
# 停止方法
stop() {
        # 重新获取一下pid,因为其它操作如start会导致pid的状态更新
        pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
        # -z 表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
        if [ -z $pid ]; then
                echo ""
                echo "Service ${JAR_NAME} is not running! It's not necessary to stop it!"
                echo ""
        else
                kill -9 $pid
                echo ""
                echo "Service stop successfully!pid:${pid} which has been killed forcibly!"
                echo ""
        fi
}
# 输出运行状态方法
status() {
        # 重新获取一下pid,因为其它操作如stop、restart、start等会导致pid的状态更新
        pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
        # -z 表示如果$pid为空时执行。注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
        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 ""
        echo ".............................Restarting.............................."
        echo "....................................................................."
                # 重新获取一下pid,因为其它操作如start会导致pid的状态更新
        pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
        # -z 表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
        if [ ! -z $pid2 ]; then
                kill -9 $pid2
        fi
        start
        echo "....................Restart successfully!..........................."
}
# 根据输入参数执行对应方法,不输入则执行tips提示方法
case "$1" in
   "start")
     start
     ;;
   "stop")
     stop
     ;;
   "status")
     status
     ;;
   "restart")
     restart
     ;;
   *)
     tips
     ;;
esac

最后,你就可以通过运行脚本来控制程序的启动或关闭啦!运行示例:./xxx.sh start | restart | stop

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值