Linux下将进程放到后台运行

本文首发于飞端博客
要想让一个程序在后台运行,有两种主要的方法:

  1. 使用 &搭配nohup
  2. 使用screen命令

切换成后台

nohup xxx.sh &

&的作用是将程序由前台切换到后台,且没有了标准输入输出流。一般在脚本的后面加上&就能够将其切换成后台程序。

但是,此时的后台程序属于当前shell的一个子进程,也就是意味着当前连接的shell一旦关闭,就会将这个后台进程也关闭。

因此,需要使用nohup将这个进程从当前的shell中脱离出来,将此后台进程的进程号切换为ppid切换为1,也就是父进程不再是当前的shell了。

这样,就算关闭当前的shell也不会关闭当前进程。

查看后台进程

当shell没有关闭时,可以使用jobs -l查看当前的后台进程。

当shell已经关闭了一次,有重新开了一个时,使用以上命令已经不能查看后台进程了,所以需要用ps -ef | grep processName来查看进程。

在我实际的使用过程中,我发现即使我使用了nohup,和 &,还是无法保证当前shell关闭后程序继续运行,因此我采用下面screen的方法

screen保证程序在后台运行

安装

一般系统不自带screen,因此需要自己安装。

ubuntu/debian: sudo apt-get install screen
centos: yum install screen

常用命令

熟练的掌握以下命令,基本的常见就够用了。

screen -S <screenName>  # 新建并进入一个窗口,名字叫screenName
screen -list # 查看目前所有窗口的名字
screen -r <screenName> # 进入指定的窗口,注意要使用上一步list出来的全称
Ctrl+A+D # 退出当前窗口并挂起,窗口内的命令继续执行
Ctrl+A+X 或 exit # 关闭窗口,全关闭

使用场景

  1. 执行screen -S test创建并自动一个新的screen
  2. 执行一个不会结束的进程top(CPU占用查看程序)
  3. 使用Ctrl+A+D退出窗口
  4. 使用screen -list查看后台进程
  5. 使用screen -r <screenName>进入窗口
  6. 停止top程序,输入exit关闭当前窗口

Enjoy It~

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值