Linux - nohup 后台启动命令

目录

1. nohup启动

2. nohup与&,后台运行

3. nohup与>,日志重定向

4. nohup后台启动-综合使用(推荐)

5. 文件描述符-0 1 2

6. 知识扩展

6.1 不停止服务,直接清空nohup.out

6.2 只记录警告级别比较高的日志

6.3 不想输出日志


nohup主要作用就是可以在后台运行,并可以选择将日志输出到指定文件。

如启动jar包,若使用java -jar demo.jar的方式启动程序当窗口关闭的时候程序也停止了,而且日志会直接输出到控制台非常不直观,nohup启动就可以解决这两个问题。

1. nohup启动

nohup sh test.sh 

说明:

后台启动test.sh脚本,日志默认会输出到当前目录的nohup.out 文件

2. nohup与&,后台运行

&符号表示将该命令或脚本放入后台运行。 即&方式启动会有进程号,使用Ctrl+C程序不会中断,但终端关闭后运行会中断。

nohup hive --service metastore 1>/dev/null 2>&1 &

3. nohup与>,日志重定向

上面提到的日志文件默认名称是 nohup.out ,如果修改日志文件的名称,则用到 重定向 ,符号是,语法格式是

nohup sh test.sh >test.log

 表示标准输出,还可以用,>>, 1>或1>>等进行表示

4. nohup后台启动-综合使用(推荐)

# 后台执行test.sh文件,将标准日志输出到output.log文件中,将错误日志也输出到output.log文件中
nohup ./test.sh > output.log 2>&1 &
等同于
nohup ./test.sh > output.log 2>output.log &

说明:

">"符号用于将命令的`标准输出`重定向到指定的文件中
> outlog.log 表示将终端输出保存到outlog.log文件中
"2>"表示将命令的`标准错误`输出重定向到指定的文件中
2>&1 表示将命令的标准错误输出重定向到标准输出1中一起输出 (ps:标准输出1指的是>outlog.log文件,具体可见下面的内容)
& 后台挂起

5. 文件描述符-0 1 2

几种输入输出方式

文件描述符

操作符

Java中表示

说明

标准输入(stdin),即standard input

0

<或<<

System.in

即表示键盘输入

标准输出(stdout),即standard output

1

>,>>,1>或1>>

System.out

例如,运行"ls 文件"命令将会输出当前工作目录下的文件列表,这些信息将会被输出到标准输出中并显示在终端上。

标准错误输出(stderr),即standard error output

2

2>或2>>

System.err

例如,运行"ls 文件"命令,但是不存在此文件,那么将会输出错误信息"ls:cannot access ‘文件名’:No such file or directory",这个错误信息将会被输出到标准错误输出中并显示在终端上。

6. 知识扩展

6.1 不停止服务,直接清空nohup.out

如果脚本一直运行下去,nohup.out 日志会一直增长,日志但是硬盘容量有限,怎么把日志文件的大小减少 ?

注意,千万别直接删除日志文件,会造成服务无法输出日志,服务异常直接停止运行,这是最严重生产事故。

 不停止服务,直接清空nohup.out文件有两种方法:

第1种:
cat /dev/null > nohup.out
 第2种:
cp /dev/null nohup.out
6.2 只记录警告级别比较高的日志

输出的日志太多,nohup.out 增长特别快,对于不重要的日记,可以不记录,选择只记录警告级别比较高的日志。

# 只输出错误信息到日志文件,其它日志不输出
nohup ./test.sh > /dev/null   2>error.log  &
6.3 不想输出日志

不想输出日志,什么日志都不要,只要服务能正常运行就行了。

# 什么日志也不输出
nohup ./test.sh > /dev/null   2>&1   &

  • 35
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值