两个问题:
1)是否有Linux/Posix API可以知道进程是否被作为后台进程调用?
linux> myprogram &
我的程序代码能否检测到它是通过 &
启动的后台进程?
2) 是否有Linux/Posix API可以将前台进程转化为后台进程运行?比如在运行时从shell中“分离”出来(要么完全脱离shell,要么作为shell的后台进程运行)。
linux> myprogram
**** starting myprogram as a background job ****
linux>
由于myprogram
已经从终端分离并在后台运行,所以命令提示符会立即返回给我。
top
命令的代码,了解它如何获取命令名称和进程状态(可能涉及从/proc
读取文件)。 - Some programmer dude