当前位置: 首页 > news >正文

详解jar包的启动命令

通常我们在启动SpringBoot项目的的jar包时,会使用以下命令

nohup java -jar xxxx.jar >log.log 2>&1 &

整条命令由linux中的bash进行解释执行,一般我们在执行某些应用程序时会使用 nohup command & 如:

nohup python3 xxx.py &
nohup java -jar xxx.jar &

1.nohup

用途:不挂断地运行命令。

语法:nohup Command [ Arg … ] [ & ]

  无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。

  如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

  如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。

退出状态:该命令返回下列出口值:   

  126 可以查找但不能调用 Command 参数指定的命令。   

  127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。   

  否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。

2.&

用途:在后台运行

再来看

java -jar xxx.jar

如果我们使用上面的命令直接启动jar包,会在屏幕直接打印启动的信息及程序内的输入输出信息,如下

并且直接使用Ctrl + C 会中止程序的运行

再结合nohup及& 使用 

nohup java -jar xxx.jar &

会将原本在屏幕直接打印的内容重定向到nohup.out 的文件中。

3.重定向

在linux系统中一切皆文件,就是说java -jar 也是一个文件,是文件就会有文件描述符FD,在liunx中每个文件都有3个固定的文件描述符0,1,2

其中0 可以理解为Java中的System.in;1可以理解为Java中的System.out ;2可以假定为一个System.error 即产生错误后的输出流,如图所示

注意图中FD下的 0u 1u 2u 分别指的是我们刚才描述的三种类型的描述符,后面的字母代表当前流的状态有三种u r w ,u代表双向的读写,r代表读,w代表写

1>log.log 2<log.log 2>&1

上面代码中,< 代表输入定向 > 代表输出定向  两种命令符号的左边均是要重定向的类型,中间不能有空格,右边为定位的终止端。比较特殊的是 2>&1是将error输出流重定向到out输出流,且1前面加上&。可以在虚拟机中做如下测试(都是基本的linux常用命令)

4.完整解读

综上我们再看整条的启动命令

nohup java -jar xxxx.jar >log.log 2>&1 &

nohup & 将xxx.jar 以后台运行的方式启动,并将java -jar 产生的输出重定向到log.log文件中。

注意 : > log.log 只是重定向了正常的输出流,我们还要将发生错误的输出流2重定向到正常的输出流1中。

 

http://www.lryc.cn/news/570776.html

相关文章:

  • Java中的CAS与ABA
  • 20年架构师视角:SpringAI如何重塑Java技术栈?
  • 【矩阵运算c++实现】矩阵封装实现Matrix类
  • 基于SVD的推荐系统:详尽的原理与实践解析
  • Google colabo使用说明
  • JAVA高校校园学校网站系统设计与实现(Springboot框架)
  • JavaSE: 数组详解
  • 按键精灵 获取网页flash游戏 句柄 以360浏览器为例
  • QQ空间 免费代码大全
  • 启动应用程序出现SensApi.dll找不到问题解决
  • 【八股消消乐】构建微服务架构体系—链路超时控制
  • 给大家推荐一些好用的国内外免费图床(可外链的免费相册)
  • 用SVN下载sourceforge上的源代码
  • va_list、va_start和va_end的用法
  • LAN_IM: 在局域网内实现高效即时通讯的开源解决方案
  • 计算机在线给手机杀毒,怎么用电脑给手机杀毒(如果手机中病毒了怎么办)
  • 如何写一个简单的python类class
  • STM32学习笔记:读写内部Flash(介绍+附代码)
  • 电磁场与电磁波篇---电荷电流
  • 蛋白分析工具和数据库
  • Javascript中void介绍
  • 局域网内共享加密狗_一行Python代码实现同一局域网内的文件共享
  • java.net.SocketException: Broken pipe
  • 科氏质量流量计的工作原理及维护
  • vue前端实现随机验证码(数字、字母混合)功能
  • DLL注入之创建远程线程
  • 【Linux入门指北】磁盘配额管理 实验篇
  • 数字图像处理题库
  • JS获取本地经纬度
  • 人人网主页登录_爬虫(三)使用session来登录人人网