03 Shell(三)启动jar包

最简单的方式启动jar包

 

一、步骤

1、将可启动的javaweb项目打包成jar包,得到xxx.jar文件;

2、我使用的是虚拟机,启动虚拟机后,用FileZilla连接到该服务器(该虚拟机服务器上搭好了jdk、tomcat等环境)。

3、将sh文件通过FileZilla拷贝到某路径下(随意,我的是/usr/demo)

shell脚本如下:start2.sh文件

#! /bin/sh

java -jar quartz-adg-0.0.1-SNAPSHOT.jar >/usr/demo/nohup.out&

tail -40f nohup.out

!此处要注意,我是在windows环境下新建的,格式是dos,需要在Linux中vim打开,执行 :set ff=unix 再保存退出 即可更改格式。

其中/usr/demo/nohup.out&是生成的日志文件的路径。

4、将xxx.jar文件拷贝至sh文件相同路径。(在FileZilla拖过去就行)

5、Linux进入/usr/demo文件所在路径,执行start2.sh文件

执行方法:

chmod +x ./xxx.sh #使脚本具有执行权限

./xxx.sh #执行脚本

6、成功效果图:

03 Shell(三)启动jar包_第1张图片

 

二、相关命令语法

1、tail

命令格式:tail[必要参数][选择参数][文件]

tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

参数:

-f 循环读取

-q 不显示处理信息

-v 显示详细的处理信息

-c<数目> 显示的字节数

-n<行数> 显示行数

--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.

-q, --quiet, --silent 从不输出给出文件名的首部

-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

在本脚本中 tail -40f 的含义是读取日志文件中最后40行内容,打印显示到命令窗口,如果把 tail -40f nohup.out 该行去掉,执行完启动脚本后就不会再打印日志内容。

 

2、nohup

(SIGHUP挂起信号,SIGINT中断信号)

&的意思是在后台运行,当你在执行 ./a.out & 的时候, 即使你用ctrl C,  那么a.out照样运行(因为对SIGINT信号免疫)。 但是要注意, 如果你直接关掉shell后, 那么, a.out进程同样消失。 可见, &的后台并不硬(因为对SIGHUP信号不免疫)。

nohup的意思是忽略SIGHUP信号, 所以当运行nohup ./a.out的时候, 关闭shell, 那么a.out进程还是存在的(对SIGHUP信号免疫)。 但是, 要注意, 如果你直接在shell中用Ctrl C, 那么, a.out进程也是会消失的(因为对SIGINT信号不免疫)

&和nohup没有关系, 要让进程真正不受shell中Ctrl C和shell关闭的影响, 就用 nohua ./a.out & 有点让a.out成为守护进程的感觉。

 

3、重定向

执行命令后不再在屏幕上显示输出结果,而是把输出结果放到了指定的文件中,所以叫重定向。(把本身应该输出在屏幕上的内容写进文本)

  • >覆盖的形式输出到指定文件、设备
  • >>追加的形式输出到指定文件、设备
  • 2>覆盖的形式 把命令的错误输出 输出到指定文件、设备
  • 2>>追加的形式 把命令的错误输出 输出到指定文件、设备

如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null;

$ command > /dev/null 2>&1

你可能感兴趣的:(Linux)