看完这篇!教你三分钟学会Java项目主机启停脚本运用!

在这里插入图片描述](https://img-blog.csdnimg.cn/2ed603270b314f18912764429d6861c2.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RlbGlsYWhfamF2YQ==,size_16,color_FFFFFF,t_70#pic_center)

Java项目主机启停脚本示例

启动脚本


示例脚本如下:

# 定义变量
JAVA_HOME=/usr/local/java/jdk1.8.0_301
LOG_HOME=/app/iacctapp/applog/rd-cbn
JVM_ARGS="-XX:-UseAdaptiveSizePolicy -XX:SurvivorRatio=8 -Xms1024m -Xmx1024m"

# 启动项目 
nohup ${JAVA_HOME}/bin/java ${JVM_ARGS} -Dloader.path=.,lib,classes -Dacctmgr.ms.instid=funddmdbcbn -jar acctmgr-boot.jar --server.port=32210 >${LOG_HOME}/consoleDmdbFund.log 2>&1 &

# 查看日志 
tail -f ${LOG_HOME}/consoleDmdbFund.log

定义变量
  • JAVA_HOME:jdk安装目录
  • LOG_HOME:程序日志输出目录
  • JVM_ARGS:jvm启动参数
启动项目
  • nohup :不挂断地运行命令。语法:nohup Command [ Arg … ] [ & ]
  • & :在后台运行一般nohup 和&一起用 :nohup command &
  • -Dloader.path:jvm加载目录,有多个用逗号分隔
  • -Dacctmgr.ms.instid=funddmdbcbn:自定义,方便进程定位
  • –server.port:端口暴露
  • 2>&1:将标准错误输出重定向到标准输出(屏幕)
名称名称操作符Java中表示
标准输入(stdin)0< 或 <<System.in
标准输出(stdout)1>, >>, 1> 或 1>>System.out
标准错误输出(stderr)22> 或 2>>System.err

2>&1一般放在最后,标准错误输出和程序日志才会都写到日志文件中。如果不放到最后,文件中只会输入日志,而标准错误输出是输出到屏幕
linux命令三剑客可参考Linux命令三剑客

查看日志

tail -f:动态输出日志文件内容到屏幕中

停止脚本


示例脚本如下:

#!/bin/bash

# 查找对应进程并杀掉
ps -ef | grep "Dacctmgr.ms.instid=fundcbn"| grep -v grep | awk '{print $2}' | while read processId 
do
        echo "stop acctmgr process $processId."
        kill $processId
done

# 显示杀进程过程与结果 
waitTimes=0
while true
do
        let waitTimes++

        commanderNum=`ps -ef | grep "Dacctmgr.ms.instid=fundcbn"| grep -v grep | wc -l`
        if [ ${commanderNum} -eq 0 ]; then
                echo "acctmgr process has been stopped."
                break;
        else
                echo "Wait for acctmgr process to exit, waitTimes ${waitTimes} ..."
        fi

        sleep 1;
done

查找对应进程

ps -ef:用标准的格式显示进程

grep “Dacctmgr.ms.instid=fundcbn”:控制ps命令只输出Dacctmgr.ms.instid=fundcbn相关的进程

grep -v grep:过滤掉grep本身进程

awk ‘{print $2}’:每行以空格或分隔符切割,输出第3位(从0计起)

杀进程
while read processId 
do
        echo "stop acctmgr process $processId."
        kill $processId
done

将上面读到的进程杀掉,知道所有进程停止为止

显示杀进程过程与结果
while true
do
        let waitTimes++

        commanderNum=`ps -ef | grep "Dacctmgr.ms.instid=fundcbn"| grep -v grep | wc -l`
        if [ ${commanderNum} -eq 0 ]; then
                echo "acctmgr process has been stopped."
                break;
        else
                echo "Wait for acctmgr process to exit, waitTimes ${waitTimes} ..."
        fi

        sleep 1;
done

该段代码的作用是每隔一秒循环对应进程的扫描,如果的进程还存在对应进程,输出提示语句,直到进程不存在为止

分类: [Linux]
![在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenWrt是一个基于Linux的嵌入式操作系统,用于路由器和其他嵌入式设备。它提供了丰富的功能和自定义选项,但对于一些用户来说,在配置和安装上可能稍显复杂。以下是一个简化的OpenWrt安装程,只需要三分钟和三个简单的步骤即可成。 第一步,准备工作。首先,确保你拥有兼容OpenWrt固件的路由器设备,并且已连接好电源和网络线。其次,访问OpenWrt官方网站,下载适用于你的路由器型号和版本的固件文件。将该文件保存到你的计算机上。 第二步,进入路由器管理界面。打开你的浏览器,并在地址栏中输入“192.168.1.1”这个默认的路由器管理IP地址。如果你的路由器IP地址有所不同,请查阅相关的资料。在登录界面输入默认的用户名和密码,通常为“root”和“admin”。登录成功后,你将进入路由器的管理页面。 第三步,安装OpenWrt固件。在路由器管理页面中,找到“系统设置”或“固件升级”等类似选项。点击“浏览”按钮,选择之前下载好的OpenWrt固件文件,并点击“安装”或“升级”按钮。等待数分钟,直到固件文件安装成并路由器自动重启。 通过以上三个简单的步骤,你就可以成OpenWrt的安装了。安装成后,你可以进一步在管理界面中自定义设置、添加插件和配置网络等。请注意,在进行任何操作前,务必备份你的路由器配置和数据,以免造成不可挽回的损失。有需要时,也可以参考官方文档和社区论坛,深入了解和利用OpenWrt的更多功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值