如何设置我的后台进程处理程序

发布于 2024-12-09 06:52:57 字数 365 浏览 0 评论 0原文

所以我正在编写一个可以同时具有前台和后台进程的外壳程序。我有一个:

signal(SIGCHLD, childHandler);

因此我有处理程序:

void childHandler(int signum){
    int status, PID;
    PID = waitpid(-1, &signum,WNOHANG);
}

该处理程序捕获更改状态的前台和后台子项。 我的 shell 似乎适用于前台进程。 但是,一旦我调用后台进程,事情就不再正常工作......我认为这可能是由于这个处理程序造成的。

任何人都可以看到是否有什么问题/缺失吗?

so I'm writing a shell that can have both foreground and background process. I have a:

signal(SIGCHLD, childHandler);

and thus I have handler:

void childHandler(int signum){
    int status, PID;
    PID = waitpid(-1, &signum,WNOHANG);
}

this handler captures both foreground and background children that change state.
My shell seems to work for foreground processes.
However, as soon as I call a background process, things don't work properly anymore... and I think it may be due to this handler.

Can anyone see if something's wrong/missing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文