通常我们在启动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中。

详解jar包的启动命令相关推荐

  1. Dockerfile指令详解: CMD 容器启动命令

    CMD 容器启动命令 CMD 指令的格式和 RUN 相似,也是两种格式: shell 格式:CMD <命令> exec 格式:CMD ["可执行文件", "参 ...

  2. java后台启动jar包的一些命令

    启动方式一 在jar包所在文件夹打开命令窗口,输入以下命令 java -jar app.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 启动方式二 ja ...

  3. jenkins 自动化远程部署——部署war包,jar包的bat命令

    目录 1. 部署war包bat @rem 停止在运行的tomact D: cd D:\Program Files\apache-tomcat\bin call shutdown.battitle my ...

  4. 一篇关于Maven项目的jar包Shell启动脚本

    使用Maven作为项目jar包依赖的管理,常常会遇到命令行启动,笔者也是哥菜鸟,在做微服务,以及服务器端开发的过程中,常常会遇到项目的启动需要使用main方法,笔者潜心的研究了很多博客,发现大多写的都 ...

  5. find linux 目录深度_浪里淘沙,详解Linux系统中Find命令的实用技巧

    知了小巷:浪里淘沙,详解Linux系统中Find命令的实用技巧. 啊哈,找到了! 当我们需要在Linux系统上定位某个文件或目录时,find命令通常是必备之选. 它使用起来非常简单,但有许多不同的可选 ...

  6. 11 阶段总结一:详解OS的引导启动过程(含Bochs模拟软件的使用)

    阶段总结一:详解OS的引导启动过程 0 前文总结 1 BIOS的自述 2 MBR的面目 3 bochs模拟系统的基本使用 3.0 bochs的简介 3.1 *.bxrc配置文件选项解析(重点) 3.2 ...

  7. linux下测试ftp传输,linux下ftp命令使用详解---linux文件传输ftp命令

    linux下ftp命令使用详解---linux文件传输ftp命令 上一篇 / 下一篇  2010-12-18 09:15:35 / 个人分类:Linux ftp(file transfer proto ...

  8. 汇编语言DEBUG命令详解||汇编命令||DEBUG的常用命令:A,U,R,T,D,E,Q 等等

    汇编命令 汇编语言Debug命令详解 DEBUG的常用命令:A,U,R,T,D,E,Q 等等 汇编语言DEBUG命令详解 文章目录 汇编语言DEBUG命令详解 R命令的使用 H命令的使用 D命令的使用 ...

  9. [网络安全学习篇2]:IP详解及简单的DOS命令(千峰网络安全视频笔记 2 day)

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

最新文章

  1. ThinkPHP如何判断一个更新操作是否成功
  2. docker脚本安装 阿里云_让运行在 Docker 中的 Ghost 支持阿里云 OSS
  3. java 枚举类型enum
  4. Shell——从hello world和echo命令开始
  5. .Net环境下基于Ajax的MVC方案
  6. 微信公众号文章中的音乐怎么设置自动播放
  7. vue伸缩效果_Vue2(三)实现子菜单展开收缩,带动画效果实现方法
  8. React中refs的理解
  9. 基于spring-boot的社区社交微信小程序,适合做脚手架、二次开发
  10. STM32/M3/M0关于开关总中断的问题
  11. linux 常见命令 cp,Linux 常用命令之cp,一个可以煮饭的工具;
  12. Java实现websocket
  13. linux在当前目录下打开终端,linux - 终端:在窗口中打开当前路径? - Ubuntu问答...
  14. 主板风扇转速测试软件,技嘉风扇转速调节及超频软件EasyTune6
  15. 批处理系统、分时操作系统、实时操作系统
  16. sqlmap用法详解
  17. 前端:项目 文件 文件夹 命名规范
  18. 如何清除html的浏览器缓存,如何清除浏览器缓存,小编教你怎么清除浏览器缓存...
  19. 技术天才米勒 oracle,奇迹中的奇迹 WW之功能炫技篇
  20. matlab积分e (x 2),e^(x^2)的定积分

热门文章

  1. 计算机在交通规划中的应用,浅谈计算机在交通运输行业中的应用
  2. 华为手机获取状态栏高度是错误的_聊聊获取屏幕高度这件事
  3. spring入门——如何实现包扫描
  4. 运算器和寄存器部件实验
  5. 【ES】Elasticsearch实现电商词库提示搜索
  6. java正则表达式分割字符串_Java开发笔记(三十七)利用正则串分割字符串
  7. upGrad收购全球教育科技公司KnowledgeHut
  8. ORB_SLAM2代码阅读及总结使用(二)
  9. 读《人类简史 我们人类这些年》亚特伍德 著
  10. 计算机简历专业实践,计算机专业优秀实习报告