Linux — nohup命令

Linux — nohup命令

一、nohup介绍

1. nohup

  • 用途:nohup 是 no hang up 的缩写,就是不挂断的意思,不挂断地运行命令。
  • 语法:nohup Command [ Arg … ] [ & ]
  • 场景:
    • 如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束或者通过ssh终端连接可能ssh连接会提前结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
    • 在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。

2. nohup + &

  • &:

    • 用途:在后台运行
    • 语法:command &:即在一个命令的最后面加&,表示这个命令放在后台执行
      所以一般将 nohup 与 & 结合在一起使用
    • eg:sh test.sh &
      将sh test.sh任务放到后台 ,关闭xshell,对应的任务也跟着停止。

  • nohup + &:

    • 语法:nohup command &

    • egs:

    nohup command > myout.file 2>&1 &
    

     在上面的例子中:

    • 0 – stdin 标准输入(standard input),
    • 1 – stdout 标准输出(standard output),
    • 2 – stderr 标准错误(standard error) ;
      2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到myout.file文件中。

二、案例总结

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

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

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


三、关闭后台运行程序

  1. 查看当前后台运行的命令

    • jobs 命令:
      功能:查看当前终端后台运行的任务

    • ps 命令:
      功能:查看当前的所有进程

      ps -aux | grep “test.sh”:
      a:显示所有程序
      u:以用户为主的格式来显示
      x:显示所有程序,不以终端机来区分

  2. 关闭当前后台运行的命令

    • kill命令:结束进程

      • 通过jobs命令查看jobnum,然后执行 kill %jobnum

      • 通过ps命令查看进程号PID,然后执行 kill pid

    • 如果是前台进程的话,直接执行 Ctrl+c 就可以终止了


五、前后台进程的切换与控制

  1. fg命令

    功能:将后台中的命令调至前台继续运行

    如果后台中有多个命令,可以先用jobs查看jobnun,然后用 fg %jobnum 将选中的命令调出。

  2. Ctrl + z 命令

    功能:将一个正在前台执行的命令放到后台,并且处于暂停状态

  3. bg命令

    功能:将一个在后台暂停的命令,变成在后台继续执行

    如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum 将选中的命令调出继续执行。


参考资料

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值