我有一个while循环,它通过将子进程的stdout重定向到父进程,从而使用阻塞I/O从子进程读取数据。通常,子进程一退出,在这种情况下阻塞的read()就会返回,因为被读取的管道由子进程关闭。
现在,我有一种情况,即对于已完成的子进程,read()调用不会退出。子进程以僵尸状态结束,因为操作系统正在等待我的代码获得它,但是我的代码却阻塞了read()调用。
子进程本身在挂起时没有运行任何子进程,我在查看/proc/<child process PID>/fd时没有看到列出的任何文件描述符。然而,子进程确实分出了两个守护进程,其目的似乎是监视子进程(子进程是一个专有的应用程序,我没
我有一个在windows和linux上运行的pygtk应用程序。主GUI具有关闭功能,可从删除事件(当用户单击窗口上的X按钮时)或通过文件->退出从菜单中调用
代码如下所示
def close_down(self):
self.hide_gui()
#do some cleanup stuff here, close down a log file etc...
gtk.main_quit()
def on_close_down_activate(self, widget): # From menu
self.close_down()
prin
我对linux很陌生,所以。我不能让我的脚本工作。我只是猜测,程序在执行tr函数时被挂起了。
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
int main()
{
int pdesc[2];
pipe(pdesc);
int a = fork();
if (a == 0) // child
{
dup2(pdesc[1],1); // chaning std_out to pipes_out
execlp("ls", "ls
我有一个运行在linux上的c程序。在关闭终端后,我在后台应用了一些命令来运行进程。
1. Pause program with `Ctrl-Z`,
2. Pull it into the background with `bg`
3. Then disown it.
现在我想看看这个仍在运行的程序的控制台输出。
在linux中怎么做?