摘要:nohup 是 no hungup 的缩写,意思是“不挂断”。我们在使用Xshell等工具,远程执行Linux脚本时,有时候会由于网络问题,导致失去连接,终端断开,程序运行一半就意外结束了。这种时候,就可以用``nohup` 指令来运行指令,使程序可以忽略挂起信号继续运行...

在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld_safe –user=mysql &。可是有很多程序并不想mysqld一样,这样我们就需要nohup命令,怎样使用nohup命令呢?这里讲解nohup命令的一些用法。

nohup 命令说明

nohup 是 no hungup 的缩写,意思是“不挂断”。

我们在使用Xshell等工具,远程执行Linux脚本时,有时候会由于网络问题,导致失去连接,终端断开,程序运行一半就意外结束了。这种时候,就可以用``nohup` 指令来运行指令,使程序可以忽略挂起信号继续运行。

语法格式:

nohup Command [ Arg ... ] [ & ]

nohup 命令运行由Command 参数 和 Arg参数 指定的命令,忽略所有挂断(SIGHUP)信号。

如果想要在运行后台中的 nohup 命令,则要添加 & ( 表示 “and” 的符号)到命令的尾部。

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

1、只使用 nohup

语法格式:

nohup Command

关闭 标准输入(控制台无法输入),标准输出 和 错误信息保存到nohup.out 文件里面,关闭客户端后命令仍然会运行。

例如:

将 nohup sh test.sh 任务放到后台,关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的 nohup.out 文件,即使关闭xshell退出当前session依然继续运行。

2、只使用 &

语法格式:

sh Command &

不会关闭标准输入(控制台可以输入),但会丢失 标准输出 和 错误信息,关闭客户端后命令会就马上停止。

例如:

将 sh test.sh & 任务放到后台 ,关闭 xshell,对应的任务也跟着停止。

3、 nohup 和 & 配合使用(推荐使用)

语法格式:

nohup Command [ Arg ... ] &

示例:

nohup sh test.sh &

不会关闭标准输入(控制台可以输入),也不会丢失标准输出和错误信息,并将输出信息保存到 nohup.out 中,关闭客户端后命令仍然会运行。

例子1:

nohup sh test.sh & 命令在后台执行,可以使用标准输入,终端能够接收任何输入,标准输出 和 错误信息 默认保存到当前目录下的 nohup.out 文件,即使关闭xshell退出当前session依然继续运行。

例子2:

nohup ./startWeblogic.sh & 意思是即使退出ssh界面,命令仍然在后台执行,并且打印日志到 nohup.out 文件中,当然也可以将 nohup.out 的输出转向到其他文件,需要使用 重定向 。

4、 nohup、 & 、 重定向(推荐使用)

使用 nohup sh test.sh & 命令时,默认是将信息输出到 nohup.out 文件中。 但是在实际工作中,我们想把日志信息输出到某个具体文件中,可以下面的命令。

语法格式:

nohup command >logfile 2>&1 &

上面命令可以拆分成三部分 nohup command & 、 >logfile 和 2>&1 。

nohup command & :这个命令上面已经介绍过了,就是后台运行命令;

>logfile:将 command 运行的日志 重定向 写入到 logfile 文件中,即输出内容 不打印到屏幕上,而是输出到 logfile 文件中。

2>&1 是将 错误信息(2) 重定向到标准输出(&1)。而 标准输出 默认是写入到 file 文件中,所以 错误信息(2)、 标准输出 都 写入到 file 文件中。

例子:

nohup starMailWeb.sh > mail.log 2>&1 &

后台运行 starMailWeb.sh ,并且将 标准输出(1)、标准错误(2) 等日志 写入到 mail.log 文件中。2>&1 相关的参数说明:

2>&1 相关的参数说明:

/dev/null 表示空设备文件,

0 表示 stdin (standard input) 标准输入,

1 表示 stdout (standard output) 标准输出,

2 表示 stderr (standard error) 标准错误信息;

> file 表示将 标准输出(1) 输出到 file文件,也就相当于 1>file ;

2>error 表示将 错误信息(2) 重定向到 error文件中 ;

2>&1 也就表示将 错误信息(2) 重定向 到 标准输出(1) ;

2>&1 >logfile :错误信息(2) 重定向 到 标准输出(1) ,标准输出(1) 重定向 到 文件file ,等于 1>logfile 2>&1 ,即 标准输出(1) 重定向 到 logfile 文件中,错误信息(2) 重定向 到 标准输出(1) 。

& 放在命令到结尾,表示后台运行,防止终端一直被某个进程占用,这样终端可以执行别到任务,配合 >file 2>&1 可以将 log信息保存到某个文件中,但如果终端关闭,则进程也停止运行。如 command > file.log 2>&1 & 。 ( 参考 2、只使用 &)

5、知识扩展

5.1、清空 nohup.out

如果命令一直运行下去,nohup.out会一直自己增长下去,如果你的服务器硬盘不给力的话,很容易把应用也挂掉(硬盘没空间 ,啥都玩不转),但是又不能一味的直接删。因为直接删除,可能会造成应用无法打印后续的错误日志,该问题常见于weblogic服务器,jboss服务器等这些大型中间件,这个在生产环境上要尤为注意。

因此就有了我们不停止服务直接,清空nohup.out文件的方法。

下面是两个种不用停止WEB服务就可以清空nohup.out的命令。

第一种:cp /dev/null nohup.out

第二种:cat /dev/null > nohup.out

5.2、解决 nohup.out 文件过大

nohup 的重定向,一劳永逸解决 nohup.out 文件过大的问题

以下是定义日志打印级别,除了高于级别2的告警信息记录到log文件外,其余直接不记录

//只输出错误信息到日志文件

nohup ./program >/dev/null 2>log &

//什么信息也不要

nohup ./program >/dev/null 2>&1 &

---------------------------------- THE END ----------------------------------

linux 清空nohup日志命令,Linux命令之 nohup 和 后台执行命令使用说明相关推荐

  1. Linux后台执行命令

    2019独角兽企业重金招聘Python工程师标准>>> Linux 后台执行命令 ###摘要:### 当你在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更 ...

  2. inux 后台执行命令

    为什么80%的码农都做不了架构师?>>>    1.cron 系统调度进程.是SHELL一个LUNX下的定时执行工具,在无需人工干预下进行作业. $/sbin/service cro ...

  3. UNIX学习笔记(七) 后台执行命令3 命令

    当在前台运行某个作业时,终端被该作业占据:而在后台运行作业时,它不会占据终端. 可以使用&命令把作业放到后台执行.该命令的一般形式为: 命令 & 为什么要在后台执行命令?因为当在后台执 ...

  4. cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置)

    有一些程序不支持被直接启动,而要求通过命令行启动.这个时候,你就需要使用 cmd.exe 来启动这样的程序.我们都知道如何在 cmd.exe 中启动一个程序,但是当你需要自动启动这个程序的时候,你就需 ...

  5. 【LInux】后台执行命令 nohup 以及强制结束进程命令 kill

    通过终端远程操作服务器时,难免要使特定进程处于持续运行状态,例如深度学习训练网络参数,但又不可能长时间不间断操作终端,我们希望将进程保持后台持续运行,这里提供两个思路:(1)docker 内运行,退出 ...

  6. linux后台执行命令:amp;与nohup的用法

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 大家可能有这样的体验:某个程序运行的时候,会产生大量的log,但实际上我们只想让它跑一下而已, ...

  7. linux开关机日志文件,Linux开关机命令(shutdown,reboot,halt,init)

    命令简介 shutdown,poweroff,reboot,halt,init都可以进行关机,大致用法. /sbin/halt [-n] [-w] [-d] [-f] [-i] [-p] [-h] / ...

  8. linux后台执行命令:和nohup

    当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件.对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨).为 ...

  9. linux清空动态文件内容,linux 动态清空 nohup 清空后,发现文件大小不变

    linux 动态清空 nohup 清空后,发现文件大小不变 关注:282  答案:2  mip版 解决时间 2021-01-18 22:48 提问者[舉燈向ηáη] 2021-01-18 15:17 ...

最新文章

  1. Apache 编译安装
  2. 微服务架构·基础篇,傻瓜看了都会
  3. springboot整合mongodb增删改查入门
  4. 基础的shell编程问题(一)
  5. 早买早享受 晚买有折扣 !特斯拉大降价致消费者拉横幅抗议
  6. Java新手学习路线
  7. 如何使用Mac DVDRipper Pro在mac上备份包括菜单和附加功能在内的完整的DVD
  8. Wine 开发版 4.6 发布,Windows 应用的兼容层
  9. ArrayList Vector
  10. 微信小程序:全新独立后台月老办事处一元交友盲盒
  11. hash算法_Win10_64 默认应用的UserChoice Hash算法学习
  12. 微信小程序实验一 ——— 简单计算器与秒表
  13. 国内著名声学期刊简介
  14. 灰度图像和彩色图像的直方图均衡化(python实现)
  15. 为什么计算机屏幕出现黄色,电脑为什么会出现显示器屏幕发黄
  16. 记一次mac 黑屏,无法点亮,不稳定,待机后无法唤醒等故障维修。(驱动)
  17. Lumerical Mode 的电场分布数据导出到 Matlab 进行处理
  18. 微信公众平台支付接口调试工具
  19. 【Spring全家桶系列】Spring中bean标签的配置与使用
  20. intel realsense 使用代碼

热门文章

  1. 腾讯:站在“山寨”肩膀上的巨人
  2. 日神领道----阅读圣经有感
  3. @Scheduled注解简介
  4. Cannot find class: com.github.pagehelper.PageIntercepto
  5. 网络基础2【HTTP、UDP、TCP】
  6. 修改UIImage大小的正确姿势
  7. 对接海康综合安防管理平台经验总结
  8. skype2.5使用
  9. pmp直方图与帕累托图的区别_pmp考试必知的十个图和表
  10. 道德经全文及译文 第二章