目录

nohup 后台运行程序

tail 实时查看文件内容


nohup 后台运行程序

1、使用 Java 开发的可执行 .jar 程序,即可以直接双击运行,也可以使用 java -jar xxx.jar 命令运行,java -jar 命令运行的好处是可以到程序中所以的输出信息。在 Windows 系统中,当关闭 PowerShell 窗口,或者 cmd 窗口时,java 程序也就结束了。

2、java -jar xxx.jar 命令不仅可以在 Windows 上运行,也可以在 Linux 系统上运行,xshell 会作为一个输出终端打印应用中所有的输出信息,如果此时按 Ctrl + C、或者直接关闭此连接,则 Linux 系统中 java -jar xxx.jar 打开的应用也会结束。

3、要想关闭窗口应用仍然能继续执行,在 Windows 上则可以不使用 java -jar 命令,而是直接双击运行 .jar 程序即可,而在 Linux 系统上则可以使用 nohup 命令将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端,通俗的说就是程序进行后台运行。

4、后台启动程序是 Linux 中很常见的操作,比如阿里巴巴的 RocketMQ 启动官方也介绍了后台启动的方式:nohup sh bin/mqnamesrv &

5、nohup 命令格式:

语法:nohup(选项)(参数)

选项:--help:在线帮助;--version:显示版本信息。

参数:要运行的程序及选项。

6、nohup 命令可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端(后端运行)。

如果标准输入是一个终端:重定向自 /dev/null
如果标准输出是一个终端:则输出信息会添加到当前目录下的 "nohup.out"文件中,如果当前目录的下的 nohup.out 文件不可写,则输出重定向到"$HOME/nohup.out" (当前登录用户目录下的 nohup.out)。
如果标准错误输出是一个终端:重定向它到标准输出。
保存输出内容到指定的文件:使用 "nohup COMMAND > FILE" 形式的命令。

操作演示:说明:演示中的 game2048-0.0.1-SNAPSHOT.jar 是使用 Spring Boot 写的 Maven 打包的可执行 jar 文件,也是一个 web 应用。

1、nohup command & :表示将 command(命令,通常是程序)进行后台运行(最后的 "&" 号不要忘记)。

[root@localhost home]# nohup java -jar game2048-0.0.1-SNAPSHOT.jar &
[1] 4336
[root@localhost home]# nohup: 忽略输入并把输出追加到"nohup.out"
[root@localhost home]# ls
game2048-0.0.1-SNAPSHOT.jar  mavenRepository  nohup.out  settings.xml
[root@localhost home]#

A)如上所示 "nohup java -jar game2048-0.0.1-SNAPSHOT.jar &",game2048-0.0.1-SNAPSHOT.jar 程序会进行后台启动运行,此时 ctrl + c 或者关闭此连接窗口都不会接受此程序。

B)第2行的 "[1] 4336" 中的 4336 表示程序运行后的进程 PID 值。

C)第三行提示 "忽略输入并把输出追加到"nohup.out",表示程序中的输出信息(日志)都追加到了当前目录下的 nohup.out 文件中了。

D)ls 即可查看到 nohup.out文件,vim nohup.out 即可查看程序的输出信息,但是无法实时查看。

E)tail -fn 50 nohup.out :实时查看当前目录下的 nohup.out 文件中结尾的 50 条信息。Linux tail 命令

2、nohup java -jar game2048-0.0.1-SNAPSHOT.jar > ./game2048.log &:在第一个基础上将日志输出到了指定的文件中。

[root@localhost home]# nohup java -jar game2048-0.0.1-SNAPSHOT.jar > ./game2048.log &
[1] 4481
[root@localhost home]# nohup: 忽略输入重定向错误到标准输出端
[root@localhost home]# ls
game2048-0.0.1-SNAPSHOT.jar  game2048.log  mavenRepository  nohup.out  settings.xml
[root@localhost home]# 

[1] 4481 :表示新开的程序进程 PID 为 2281

第3行表示将输出定向到了自定义的文件(game2048.log)中。

3、nohup java -jar game2048-0.0.1-SNAPSHOT.jar > ./game2048.log 2>&1 &:在第2的基础加了 "2>&1",表示后台运行程序,将标准错误(2)重定向到标准输出(1),然后将标准输出导入文件,结果就是文件中包含了标准输出和标准输入信息(通常实际中使用第1、第2就够了,如果日志文件需要记录程序的输入信息,则加上 "2>&1")。

[root@localhost home]# ls
game2048-0.0.1-SNAPSHOT.jar  mavenRepository  settings.xml
[root@localhost home]# nohup java -jar game2048-0.0.1-SNAPSHOT.jar > ./game2048.log 2>&1 &
[1] 4594
[root@localhost home]# ls
game2048-0.0.1-SNAPSHOT.jar  game2048.log  mavenRepository  settings.xml
[root@localhost home]#

4、如果将日志的输出目录设置为 /dev/null,则表示放弃记录日志。

[root@localhost home]# ls
game2048-0.0.1-SNAPSHOT.jar  mavenRepository  settings.xml
[root@localhost home]# nohup java -jar game2048-0.0.1-SNAPSHOT.jar >/dev/null &
[1] 4666
[root@localhost home]# nohup: 忽略输入重定向错误到标准输出端
[root@localhost home]# ls
game2048-0.0.1-SNAPSHOT.jar  mavenRepository  settings.xml
[root@localhost home]# kill -9 4666
[root@localhost home]# nohup java -jar game2048-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &
[2] 4700
[1]   已杀死               nohup java -jar game2048-0.0.1-SNAPSHOT.jar > /dev/null
[root@localhost home]# ls
game2048-0.0.1-SNAPSHOT.jar  mavenRepository  settings.xml
[root@localhost home]#

game2048-0.0.1-SNAPSHOT.jar  运行之后,在 windows 上浏览器就可以访问了,而且即使连接窗口关闭了,程序也会继续运行。

tail 实时查看文件内容

1、tail 命令可用于查看文件的内容,参数 -f 常用于查阅正在改变的日志文件,如实时查看 Java 应用程序输出的日志信息。

2、tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

参数 描述
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c <数目> 显示的字节数
-n <行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q --quiet, --silent 从不输出给出文件名的首部
-s --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

3、常见用法举例:

举例 描述
tail notes.log 显示当前目录下 notes.log 文件的最后 10 行信息
tail -f notes.log 跟踪当前目录下名为 notes.log 的文件的增长情况,按 ctrl + c 可以退出跟踪
tail -c 10 notes.log 显示当前目录下 notes.log 文件的最后 10 个字符
tail -f -n 50 nohup.out 实时显示 nohup.out 文件的最后 50 条信息,行数可以自己定义。

Linux 命令之 nohup 后台运行程序,tail 实时查看文件内容相关推荐

  1. Linux下使用Nohup后台运行程序

    一.不输出日志的命令 #!/bin/bash echo "starting nohup..." nohup dotnet ./mynetcoreapp.dll > /dev/ ...

  2. Linux命令详解:tail - 实时查看文件内容

    道阻且长,行则将至.埋头苦干,不鸣则已,一鸣惊人!加油,骚年!!! 1 背景   最近在工作开发中,经常需要通过 Xshell 连接设备,进行调试等.可是在日常使用时,一般都是通过串口直接连接到控制板 ...

  3. linux scp 后台运行,Linux scp 设置nohup后台运行

    Linux scp 设置nohup后台运行 1.正常执行scp命令 从oradb30机器拷贝一个文件夹到oradb31机器: scp -r /u01/media/Disk1/ 192.168.1.31 ...

  4. 【java】 linux下利用nohup后台运行jar文件包程序

    Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 ...

  5. 【OS】Linux命令如何放到后台运行

    [OS]Linux命令如何放到后台运行 linux命令后台运行  有两种方式:    1. command & : 后台运行,你关掉终端会停止运行    2. nohup command &a ...

  6. Linux命令转到后台运行

    Linux命令转到后台运行 当我们在Linux系统下执行Shell命令时,运行的时间可能会非常久.这期间如果网络断掉或者关闭客户端,这条命令的执行就会中断. 在这种情况发生时,我们需要一个办法把这条正 ...

  7. linux后台运行快捷键,Linux命令放入后台运行方法(和Ctrl+Z)详解版

    Linux 命令放入后台的方法有两种,分别介绍如下. "命令 &",把命令放入后台执行 第一种把命令放入后台的方法是在命令后面加入 空格 &.使用这种方法放入后台的 ...

  8. Linux中常见的指令(三):几个查看文件内容的指令,ctrl+c的理解

    目录: 1.查看文件内容的指令 (1)more指令:查看文件内容,在左下角有当前查看文件内容的进度 (2)less命令:查看文件内容,左下角展示文件名称 (3)more和less的原理 2.head指 ...

  9. linux下利用nohup后台运行jar文件包程序

    Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 ...

  10. Linux 命令之 less -- 分屏上下翻页浏览文件内容(查看文件内容/显示文件内容)

    文章目录 介绍 语法格式 常用选项 浏览文本内容的快捷键 向前滚屏 向后滚屏 跳跃 搜索 退出 less 参考示例 (一)查看文件 (二)ps查看进程信息并通过less分页显示 (三)查看命令历史使用 ...

最新文章

  1. 对人工智能问题的提问
  2. Java设计模式-桥接模式 理论代码相结合
  3. Debenham养老金项目关键流程1-员工分类流程
  4. Spring Boot返回的数据格式是XML 而不是JSON之原因探求的和解决
  5. Python出现quot; SyntaxError: Non-ASCII character '\xe6' 或'\xd6' in filequot;错误解决方法
  6. SpringCloud Stream操作消息队列
  7. JAVA地址连接状态检测工具类
  8. ANSYS SPEOS VRXPERIENCE-基于物理特性的智能驾驶传感器高精度仿真
  9. SXF-2021软测实习生笔试
  10. matlab 中的textscan
  11. ros自己写避障算法_基于ROS的机器人室内环境探索、避障和目标跟踪方法与流程...
  12. QT编译时查找不到GL /usr/bin/ld cannot find -lGL
  13. charles入门使用
  14. DataGridView的属性、事件、方法
  15. MySQL 查询一个表的大小
  16. 51单片机的串行接口介绍
  17. 基于system generator的整除除法设计
  18. 国一大佬也收藏的6大数学建模网站
  19. 网页JS弹出广告代码,头部,右下角,网页中漂浮,对联广告代码等大全
  20. 个人微信ipad协议 8.0.37

热门文章

  1. 亲测VS2010纯静态编译QT4.8.2,实现VS2010编译调试Qt程序
  2. html修改列表内的audio样式,如何修改H5中的audio样式
  3. 拓端tecdat|R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
  4. 拓端tecdat|用R语言制作交互式图表和地图
  5. c语言文本格式自动对齐,c语言文件读取原始数据是1、2列是按相同的一起排列命名为Yi- 爱问知识人...
  6. Java从入门到精通 第11章 枚举
  7. 30096大学计算机应用基础,300道计算机应用基础试题(附答案)
  8. oracle psu版本确认,Oracle PSU更新
  9. 上传文件时服务器返回错误信息,上传文件时的错误提示
  10. unantu下的tmp文件夹_纯干货:Linux各文件夹结构说明及用途介绍