作为课程作业的一部分,我正在编写我自己的shell。所以我需要支持后台工作。我正在维护作业id和后台作业的数据结构。但是我还需要告诉内核这是一个后台进程,所以只有一个终端前台进程。到目前为止,我是在我的程序级别处理后台工作。
注册后台进程的函数调用是什么?
发布于 2009-10-04 03:30:28
如果您希望某个进程不是终端控制组的一部分,最简单的方法是简单地给它一个不同的组。
switch (fork()) {
case 0:
setpgid(getpid(), getpid());
execvp(...);发布于 2009-10-02 16:00:19
在Linux上,查看守护进程函数:
int daemon(int nochdir, int noclose);如果您使用的系统上不存在守护程序功能,则需要使用setsid和fork。
发布于 2009-10-03 09:34:52
对不起,我误解了你的问题。您需要使用tcsetpgrp函数。
有关详细信息,请阅读GNU C库手册中的这一节:
http://www.gnu.org/s/libc/manual/html_node/Job-Control.html
https://stackoverflow.com/questions/1510370
复制相似问题