我有一个检查管道是否存在的程序,它是在一个函数中编写的:
status = mkfifo("recv",0666);
fd1 = open("recv",O_WRONLY);
fd2 = open("sendd", O_RDONLY);
cout<<"we are checking botth bcz we have both read and write in the program------:)";
if(fd1 <0 && fd2 <0)
{
//strerror(errno
我在Linux机器上将postgres shared_buffers提高到了7GB。这是大约25%的可用RAM在这台机器上,我相信遵循postgres的建议。
机器上的记忆耗尽了。我看到的是memory进程,每个进程使用7GB驻留的memory.When,我运行在顶部,我看到机器上的内存被充分使用,所以我认为7GB是postmaster进程的私有内存。
我以为shared_buffers内存应该是共享的。
这是postgres 8号
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15872 postgres
我有一个while循环,它通过将子进程的stdout重定向到父进程,从而使用阻塞I/O从子进程读取数据。通常,子进程一退出,在这种情况下阻塞的read()就会返回,因为被读取的管道由子进程关闭。
现在,我有一种情况,即对于已完成的子进程,read()调用不会退出。子进程以僵尸状态结束,因为操作系统正在等待我的代码获得它,但是我的代码却阻塞了read()调用。
子进程本身在挂起时没有运行任何子进程,我在查看/proc/<child process PID>/fd时没有看到列出的任何文件描述符。然而,子进程确实分出了两个守护进程,其目的似乎是监视子进程(子进程是一个专有的应用程序,我没