【linux】nohup 命令和后台运行符 & 外加2>&1的使用

前言:

在终端执行指令时,有时候希望指令挂起,不会因为终端关闭而导致指令中断。这时候需要使用nohup或&指令来实现。

1. nohup

nohup英文全称为no hang up(不挂起),用于在Linux系统不挂断地运行命令,退出终端不会影响程序的运行。

nohup命令,在默认情况下(非重定向时),会输出一个名叫nohup.out的文件到当前目录下,如果当前目录的nohup.out文件不可写,输出重定向到$HOME/nohup.out文件中。

nohup ./run_funnel.sh 

2. &

后台运行符&用于在后台执行命令,使用Ctrl+C程序不会中断,但终端关闭后运行会中断。

./run_funnel.sh &   

3. nohup+&

双剑合璧,Ctrl+C和关闭终端都不会导致程序停止。

nohup ./run_funnel.sh &

4. 查看进程

ps -aux | grep "run_funnel.sh"

参数说明:

  • a: 显示所有程序
  • u: 以用户为主的格式来显示
  • x: 显示所有程序,不区分终端机

5. kill进程

kill -9 xxxx

参考:知乎回答-孙文奇

如何评价 Linux nohup 命令和后台运行符 & 的使用? - 知乎

6. 2>&1

在Linux系统中0 1 2是一个文件描述符

2>&1将标准错误输出2重定向到标准输出1中,这样2就合并到1中一起输出。

nohup ./run_funnel.sh > outlog.txt 2>&1 &

> outlog.txt 表示将终端输出保存到txt中
2>&1 表示将错误输出2定向到标注输出1中一起输出
& 后台挂起

nohup指令和&的区别:

父进程不一样,nohup的父进程的id是1。所以退出也能运行。&的父进程是执行的终端进程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值