zoukankan      html  css  js  c++  java
  • linux系统下运行java项目的脚本编写

    本文主要讲linux系统下运行jar包,至于如何打包jar包,放到linux系统下可以参考其他的博客。

    在linux系统下运行jar包的命令如下:

    1、java -jar xxxxx.jar  // 当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出

    2、java -jar xxxxx.jar &   //当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。

    3、nohup Java -jar xxxxxx.jar &  //意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行

    这个只要部署一次,然后实际运行一下就会发现问题,然后自己搜索。那么如何写一个shell脚本,直接运行resart.sh脚本就好了。

    经过几次试验终于写好了。如下:restart.sh

    pid=`ps -ef | grep rulecc-1.0.0 | grep -v grep |awk '{print $2}'`
    if [ $pid ]; then  
        echo :App  is  running pid=$pid
        kill -9 $pid
    fi
    nohup java -jar /apps/rulecc-1.0.0/rulecc-0.0.1-SNAPSHOT.jar &
    tail -f nohup.out
    

     

    对于一些大牛很快就能看懂,如果你跟我一样,一点linux脚本的基础和经验也没有,那么下面的知识和操作有助于你能理解:

    1、linux环境下运行了java程序之后,如何查看启动程序的线程?如何关闭运行程序的线程?

    第一步:在运行app的路径下输入命令:jps

    第二步:当你找到对应的app,那么你一定可以找到对应的线程;没有找到也没有关系,到网上搜搜,或者问问身边写过的人,也能找到。假设目标线程的pid=12522

    第三步:“杀死”运行app的线程: kill -9 12522

    第四步:重新运行java程序。

    第五步:反复操作前面四步。多做几次你一定会懂是什么意思。

    下面就来解释一下restart.sh脚本的意思:

    第一行:将运行目标的线程pid赋值给pid变量

    第二行:判断pid是否在运行

    第三行:如果在运行就打印运行的pid

    第四行:“杀死”运行的pid

    第五行:运行java程序。

    第六行:自己搜一下吧。

    问题:在写restart.sh的时候遇到了几个问题,都顺利解决了,提供给大家参考,如果有疑问还是没有解决的,欢迎留言。

    1、xxx.sh脚本运行不被允许。

    2、syntax error near unexpected token。出现这个问题的原因是由于windows环境下的换行符在linux环境下无法识别,所以要转换成linux环境下的。

    这个在百度经验里面会有,这里就不罗嗦了。

    ===============================

    下面提供一些常用的linux环境下的运行语句:

    cd ..   //回到上一级目录
    cd /apps   //打开文件夹
    ls     //查看文件
     
    cd ./icreditrisk   //打开当前文件夹下的某文件夹
    ls    // 查看文件
     
    vim application.xml // 查看该文件
    i           // 插入,修改
    q!           // 放弃修改
    wq      //保存修改

    [参考文章]

    1、http://blog.csdn.net/wggorking/article/details/53925907

    2、https://jingyan.baidu.com/article/9f63fb91d014b8c8410f0e7a.html

    3、http://blog.csdn.net/catoop/article/details/50588851

     4、http://blog.csdn.net/qq_30739519/article/details/51115075

  • 相关阅读:
    ACDream
    HDU
    拼音码和五笔码生成规则
    XML与DataTable相互转换
    如何给gridControl动态的添加合计
    SqlBulkCopy将DataTable中的数据批量插入数据库中
    截取中间字符
    将Excel表格数据转换成Datatable
    DevExpress GridControl 使用方法技巧 总结 收录整理
    C#小技巧
  • 原文地址:https://www.cnblogs.com/boywwj/p/7223019.html
Copyright © 2011-2022 走看看