如何判断当前进程是否是一个后台进程?

jiaojian77 2003-12-02 05:33:37
如何判断当前进程是否是一个后台进程?
...全文
342 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
linaxing 2003-12-03
  • 打赏
  • 举报
回复
楼上答案1的补充:
一个进程的组id代表的进程的ppid为1,那么这个进程就是后台进程。
fierygnu 2003-12-03
  • 打赏
  • 举报
回复
daemon和后台进程组是两个不同的概念:前者的判据应该是mosaic(影子)的答案2,即没有控制终端。后台进程组是用来进行job控制的。

方法对。
jiaojian77 2003-12-03
  • 打赏
  • 举报
回复
前台进程组只有一个,后台进程组可以有多个,(好像是这样吧?)
可以不可换个方向,判断是否是前台进程。
这样可不可以?
获得标准输出上的前台进程组ID
tcgetpgrp(1)
获得当前进程的组ID
getpgid(getpid())
然后判断这两个ID是否相等,如果相等那么当前进程就是前台进程,反之就不是。
不知对不对?
mosaic 2003-12-02
  • 打赏
  • 举报
回复
1. 后台进程的父进程是init进程,因此ppid=1. 后台进程的子进程也可称后台进程,他们的ppid当然就不是1了。
2. 后台进程没有控制终端,因此用ps -ef看的话其tty一般为-或?.
可以从这些信息来初步判断。
jiaojian77 2003-12-02
  • 打赏
  • 举报
回复
up

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧