zoukankan      html  css  js  c++  java
  • linux shell脚本 启停相关小技巧

    启动

    MAIN_CLASS="xxx.Main"
    nohup java -server $MAIN_CLASS 1>>./app.log 2>&1 &
    
    • nohup 操作者退出窗口不关闭程序
    • 1>>./app.log 标准输出重定向到文件app.log,即控制台输出
    • 2>&1 将标准错误重定向到标准输出的文件,即app.log
    • & 后台执行

    停止

    获取pid

    JAVA_PID=`ps -C java -f --width 1000|grep "appName"|grep -v grep|awk '{print $2}'`
    
    • ps -C java 获取命令名为java的进程
    • -f --width 1000 全格式,屏幕宽度为1000,以便展示完所以的cmd参数
    • -v grep 排除带grep的行
    • awk '{print $2}' awk提取第2列的值

    停止前调用每个http接口

    result=$(curl -s -m 12 --connect-timeout 12 "http://127.0.0.1:1/xx")
    

    可用于在停止脚本中优雅关闭特殊资源,并且在curl不能正常返回时及时的中断,执行后续的强制杀停进程操作

    • curl -s 不打印进度 -m 10 读取数据超时时间 --connect-timeout 10 连接超时时间

    打印到指定文件

    echoToFile(){
        echo "shutdown(shutdown.sh)::$1"
        echo "shutdown(shutdown.sh)::$1" >>$logPath/server.log 2>&1 &
    }
    
    • 打印内容带指定前缀,打印到指定文件
    • $1 为第1个参数,如echoToFile "xx:$pid"
  • 相关阅读:
    Java之抽象类,多态,接口
    Java之抽象类,多态
    Java之类。实例初始化
    Java基础之继承
    java面向对象之工具类
    Java基础面向对象封装
    Python入门学习资料推荐
    内网安全「攻防」学习指南
    windows文件扩展名
    java 的包命名规范
  • 原文地址:https://www.cnblogs.com/windliu/p/15091558.html
Copyright © 2011-2022 走看看