全网最全Linux 运行jar包的几种方式[通俗易懂]

全网最全Linux 运行jar包的几种方式[通俗易懂]一、Linux运行jar包的几种方式方式一:java-jarxxx.jar最常用的启动jar包命令,特点:当前ssh窗口被锁定,可按CTRL+C打断程序运行,或直接关闭窗口,程序退出方式二:java-jarxxx.jar&&代表在后台运行,ctrl+c后程序也会继续运行方式三:nohupjava-jarxxx.jar&nohup即nohangup不挂断,关闭SSH客户端连接,程序不会中止运行缺省情况下该作业的所

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、Linux 运行jar包的几种方式

  • 方式一: java -jar xxx.jar

最常用的启动jar包命令,特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出

  • 方式二: java -jar xxx.jar &

&代表在后台运行 ,ctrl+c 后程序也会继续运行

  • 方式三: nohup java -jar xxx.jar &

nohup 即 no hang up 不挂断 ,关闭SSH客户端连接,程序不会中止运行

缺省情况下该作业的所有输出被重定向到nohup.out的文件中,如何让输出的内容重定向到指定的文件呢?

  • 方式四:nohup java -jar xxx.jar >aaa.log &

command >out.file 是将commandd 输出重定向到out.flie文件,即输出内容不打印到屏幕上,而是输出到out.file文件中

  • 方式五:nohup java -jar spring-boot-demo.jar > springboot.log 2>&1 &

363c896c36dec3783bb93a3ebe312a58.png

  • 方式六:nohup java -jar spring-boot-demo.jar > /dev/null 2>&1 &

​ 不输出日志

二、nohup 和 &

使用&后台运行程序:
  • 结果会输出到终端
  • 使用Ctrl + C,程序免疫
  • 关闭session,程序关闭
使用nohup运行程序:
  • 结果默认会输出到nohup.out
  • 使用Ctrl + C,程序关闭
  • 关闭session,程序免疫

平日线上经常使用nohup&配合来启动程序

三、> /dev/null 2>&1

  • > 标准重定向符,允许我们创建一个 0KB 的空文件。它通常用于重定向一个命令的输出到一个新文件中。在没有命令的情况下使用重定向符号时,它会创建一个文件。

  • /dev/null 可以看作黑洞,等价于一个只写文件。所有写入它的内容都会永远丢失,尝试从它那儿读取内容则什么也读不到。也就是将所有产生的日志将被丢弃

  • 2>&1 符号>&是一个整体代表将标准错误2重定向到标准输出1,如果是2>1的话,代表将标准错误输出到文件1,而不是重定向到标准输出流

​ 先了解下1和2在Linux中代表什么

​ 当Linux执行一个程序时,会自动打开三个流

0:标准输入流(默认是键盘)
1:标准输出流(默认是屏幕)
2:标准错误流(默认是屏幕)

名称 代码 操作符 java中表示 Linux中文件描述符
标准输入(stdin) 0 < 或 << System.in /dev/stdin -> /proc/self/fd/0 -> /dev/pts/0
标准输出(stdout) 1 >, >>, 1> 或 1>> System.out /dev/stdout -> /proc/self/fd/1 -> /dev/pts/0
标准错误输出(stderr) 2 2> 或 2>> System.err /dev/stderr -> /proc/self/fd/2 -> /dev/pts/0

​ 从上表看出,平常使用的 echo 'hello' > a.log 可以写成 echo 'hello' 1> a.log

​ 为什么2>&1要放在后面 ? 如下一条shell命令 nohup java -jar app.jar >log 2>&1 & 我们不妨把1和2都理解是一个指针,然后来看上面的语句就是这样的:

​ 本来1—–>屏幕 (1指向屏幕)
​ 执行>log后, 1—–>log (1指向log)
​ 执行2>&1后, 2—–>1 (2指向1,而1指向log,因此2也指向了log)

​ 再来分析下nohup java -jar app.jar 2>&1 >log &
​ 本来1—–>屏幕 (1指向屏幕)
​ 执行2>&1后, 2—–>1 (2指向1,而1指向屏幕,因此2也指向了屏幕)
​ 执行>log后, 1—–>log (1指向log,2还是指向屏幕)
​ 所以这就不是我们想要的结果。

​ 每次都写”>log 2>&1″太麻烦,能简写吗?可以简写成 &>log>&log

nohup java -jar app.jar 2>&1 >log & 简写成:nohup java -jar app.jar &>log &

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185743.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Mac下设置Android源代码编译环境

    Mac下设置Android源代码编译环境

  • SQL Server2012 安装方法详解[通俗易懂]

    首先要找到自己下载好的安装包,并且保持网络畅通。双击setup.exe。稍微等待大概一分钟时间,会出现提示(在安装过程中,会多次出现如下提示,只需要耐心等待就好了。我之后就不一一例出来了)。在我们安装SQLServer之前需要先检查下电脑配置。请点击“系统配置检查器”进行检查。出现“已通过”的提示则可以进行安装。点击确定进行安装(这里有的人的电脑在“重新启动计算机”会显示不通过。方法

  • navicat mac激活码【2021.7最新】

    (navicat mac激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • vim命令下显示行号[通俗易懂]

    vim默认不显示行号如何使vim命令显示行号?显示当前行行号在vim的命令模式下,在光标停留处,退出命令模式,然后输入:nu,即可显示当前这行的号码显示所有行号如果要显示该文件的所有行号,则需要在vim的命令模式下,输入:setnu,则可以显示该文件的所有行号取消所有行号如果要显示该文件的所有行号,则需要在vim的命令模式下输入,在光标停留处,退出命令模式,然后输入:setnonu,即可显示当前这行的号码这样的设置方法只能维持在,当前vim打开的文件…

  • CCD传感器成像、尺寸、曝光时间「建议收藏」

    CCD传感器成像、尺寸、曝光时间「建议收藏」参考博主@机器视觉001的博文https://blog.csdn.net/liubing8609/article/details/78254703工业相机,最本质的功能就是将光信号转变成有序的电信号。CCD传感器成像过程1.用相机拍摄景物时,景物反射的光线通过相机的镜头透射到CCD上。2.当CCD曝光后,光电二极管受到光线的激发释放出电荷,感光元件的电信号便由此产生。3….

  • 构建高性能web站点-读书笔记一

    构建高性能web站点-读书笔记一

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号