文章目录
- 一、前言
- 二、nohup(不挂断)简介
- 三、nohup使用
- 3.1、nohup启动
- 3.2、nohup与&的区别
- 3.3、nohup与>,日志重定向
- 3.4、nohup后台启动-综合使用`(推荐)`
- `2>&1`
- 3.5、nohup后台启动(不生成日志)
- 四、查看进程
- 五、知识扩展
- 5.1、不停止服务,直接清空nohup.out
- 5.2、只记录警告级别比较高的日志
- 5.3、不想输出日志
经常看到一些jar包,sh脚本用nohup命令后台启动,今天就讲解一下nohup的用法。
nohup主要作用就是可以在后台运行,并可以选择将日志输出到指定文件。如启动jar包,若使用的方式启动程序当窗口关闭的时候程序也停止了,而且日志会直接输出到控制台非常不直观,nohup启动就可以解决这两个问题。
nohup 是 no hung up的缩写,意思是不挂断 。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
使用 Xshell 等Linux 客户端工具,远程执行 Linux 脚本时,有时候会由于网络问题,导致客户端失去连接,终端断开,脚本运行一半就意外结束了。这种时候,就可以用nohup 指令来运行指令,即使客户端与服务端断开,服务端的脚本仍可继续运行。
nohup 语法格式:
- 关闭客户端后,命令仍然会运行,不会挂断。
- nohup命令允许被运行的程序的输出信息将不会显示到终端。
说明:
- 后台启动test.sh脚本,
1、&才是后台运行
2、nohup : 不挂断的运行,注意并没有后台运行的功能,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;
&符号表示将该命令或脚本放入后台运行。 即&方式启动会有进程号,
上面提到的日志文件默认名称是 nohup.out ,如果修改日志文件的名称,则用到 重定向 ,符号是,语法格式是
表示标准输出,还可以用等进行表示
说明:
表示stdin标准输入,用户键盘输入的内容
表示stdout标准输出,输出到显示屏的内容
表示stderr标准错误,报错内容
是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。
符号用于将命令的标准输出重定向到指定的文件中,
表示将命令的标准错误输出重定向到指定的文件中,
表示将命令的标准错误输出重定向到标准输出中
在Linux系统中0 1 2是一个文件描述符
上面的示例中,都会将nohup执行的日志存放到nohup.out文件或者其他文件中,有没有方法不存放日志了呢?请使用以下命令
参数说明:
- a: 显示所有程序
- u: 以用户为主的格式来显示
- x: 显示所有程序,不区分终端机
如果脚本一直运行下去,nohup.out 日志会一直增长,日志但是硬盘容量有限,怎么把日志文件的大小减少 ?
注意,千万别直接删除日志文件,会造成服务无法输出日志,服务异常直接停止运行,这是最严重生产事故。
不停止服务,直接清空nohup.out文件有两种方法:
输出的日志太多,nohup.out 增长特别快,对于不重要的日记,可以不记录,选择只记录警告级别比较高的日志。
不想输出日志,什么日志都不要,只要服务能正常运行就行了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/650.html