Linux:进程间关系与守护进程

进程间关系

除了我们所知道的父子关系,兄弟关系等,进程之间还有两个很重要的关系,即进程组关系和会话关系。

  • 进程组作业和会话
    例如:
[Daisy@localhost Linux3]$ sleep 1000 | sleep 20000 | sleep 3000 &
[1] 3042

我们进行了3个进程,&表示放在后台运行,运行的结果是[1] 3042其中1表示作业号,3042是最后一个进程的id,例如:
在这里插入图片描述
可以看出这三个进程共用一个PPID2831,PGID表示所属组的id,SID是会话id
然后我们多进行几次这三个进程的运行,可以得到:
在这里插入图片描述
可以看出是一组一组的,说明进程组是与作业(多个进程协同做一件事称为作业)相联系的
使用jobs命令可以查看当前有几个作业在运行:

[Daisy@localhost Linux3]$ jobs
[1]   运行中               sleep 1000 | sleep 20000 | sleep 3000 &
[2]   运行中               sleep 1000 | sleep 20000 | sleep 3000 &
[3]-  运行中               sleep 1000 | sleep 20000 | sleep 3000 &
[4]+  运行中               sleep 1000 | sleep 20000 | sleep 3000 &

如果此时想要将某个作业放到前台来运行,使用fg(front ground)命令:
在这里插入图片描述
此时将2号作业放到前台来运行,此时将2号作业结束,然后jobs可以发现已经没有了2号作业,如图:
在这里插入图片描述
可以看出ctrl+c是终止作业的。
此时如果我们将3号作业和4号作业都终止掉,只剩下1号作业,然后此时我们将1号作业放到前台,但是又想返回后台,此时可以使用ctrl+z命令,然后发现现在作业停止,然后使用bg(back ground)命令将1号作业放到后台,例如:
在这里插入图片描述
可以看出实现了这个功能。
因此我们可以得出,当启动一个前台作业时,我们输入命令是没有用的,因为此时bash已经被放到了后台,终止掉这个作业就可以输入命令,因为此时bash放到了前台,例如:
在这里插入图片描述

守护进程

也称精灵进程,是放在后台的一种特殊进程。
linux后台的一些系统服务进程,没有控制终端,不能直接和用户交互,不受用户登录和注册的影响,一直在运行着,都是守护进程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值