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

时间: 2024-12-10 00:19:27

linux系统下运行java项目的脚本编写的相关文章

在Linux系统下运行微信Web开发者工具

微信Web开发者工具只有window版本和mac版本,如果想要在Linux系统下运行微信Web开发者工具,需要花费很大周折. 注:带 * 的步骤或文件为不确定是否管用的步骤或文件.本人系统为Linux Mint 18.1版本. 1.下载nwjs 下载nwjs的SDK. 2.将微信web开发者工具拷贝到nwjs 将在window系统下安装的微信web开发者工具文件夹中的package.nw.icon.ico.* 微信web开发者工具.exe拷贝到nwjs sdk解压后的文件夹内. * 解压 微信w

linux系统下重启tomcat的shell脚本

linux系统下重启tomcat的shell脚本: tomcat_home=/opt/apache-tomcat-6.0.32 #找到tomcat进程的id并kill掉 ps -ef |grep tomcat |awk {'print $2'} | sed -e "s/^/kill -9 /g" | sh - #删除日志文件,如果你不先删除可以不要下面一行 rm $tomcat_home/logs/* -rf #删除tomcat的临时目录 rm $tomcat_home/work/*

linux系统下的web项目的部署

本文所用到的所有软件都已传至百度云盘,需要用的可自行下载安装.链接:https://pan.baidu.com/s/1dplyekS1ZExzvaHHdiOX0Q 密码:fo4q 在这里作者演示的是使用虚拟机上安装的linux系统的项目部署,云服务器上的web项目部署类似 前期准备: 首先,在自己电脑上装虚拟机软件,我使用的是VMware Workstation,然后在虚拟机上安装linux系统,我使用的是Cent OS, 安装完linux系统后配置其ip地址,这里介绍两种配置linux系统下配

Linux下运行java项目

最近初步接触了linux,感觉很有新鲜感.之前在windows下干过的事情也便想到在linux环境下实现一下.正好手头在编java,就想既然java可以在windows的DOS操作下运行,是不是也可以在linux的terminal下编译执行呢?好奇心是最好的老师,网上丰富的资源帮助我很快的实现了这一操作.具体实现过程如下: 安装JDK 要编译执行java代码,首先需要有支持java的系统程序,所谓的jdk,java development kit就是干这个用的.无论是在windows还是Linu

如何在Linuxt系统下运行maven项目

我们知道现在利用MAVEN来管理JAVA项目是非常常见的.比如公司一般都有一个自己的MAVEN仓库,通过MAVEN仓库来解决我们的项目依赖,更加方便的构建项目.但是我们又如何生成JAR包,放到LINUX服务器上运行呢?如果涉及到一些第三方的JAR依赖,该如何处理呢?现在,将我的经历写下来,分享给大家. 首先,我们要导出代码为JAR,这一步,我们可以不利用MAVEN插件来进行,因为如果利用MAVEN插件的话,生成可执行的JAR,需要配置,比较繁琐,可以直接利用ECLIPSE的export功能进行导

linux系统下配置java环境变量

本次安装以linu64位操作系统为参考.安装jdk1.8 一.安装前准备 linux服务器一台 用root用户在/usr/local目录下新建java文件夹 二.jdk下载 如果linux服务器可以连接外网可以直接使用wget命令在oracle官网上下载,如不能访问外网则可以提前下载好用ftp工具穿至服务器的/usr/local/java文件夹下.wget下载命令如下: wget --no-check-certificate --no-cookies --header "Cookie: orac

Linux系统下运行c++程序

引言 为什么要在Linux下写程序? 首先要问一下自己,为什么要写这个程序. 如果我们写一个运行在windows平台的应用程序,那么用Linux写肯定是傻瓜或者强迫症,因为在windows平台调试windows程序可以更容易发现并解决问题,反过来也一样,在Linux平台调试出来的程序可以更好的适应Linux平台的环境,如果在windows下写出一个程序,结果到了Linux的运行环境出了暗病,那真是欲哭无泪,无从查起. 而很多时候,我们的程序都不是运行在windows平台的,例如嵌入式设备的内存容

Linux下运行Java项目时,出现No X11 DISPLAY variable was set, but this program performed an operation which requires it.的问题解决

在~/.bashrc环境变量文件最下方加入: export DISPLAY=:0.0 然后,刷新环境变量以使其生效: source -/.bashrc 参考:http://stackoverflow.com/questions/662421/no-x11-display-variable-what-does-it-mean

Linux系统下ping整个网段IP脚本

#!/bin/bash #加载functions,action需要用到 . /etc/init.d/functions #for循环网段1-254 for var in {1..254}; do #定义变量IP ip=172.21.0.$var #ping的信息不要显示在屏幕 ping -c2 $ip >/dev/null 2>&1 if [ $? = 0 ];then #如果ping成功显示OK action "$ip" /bin/true else #如果pin