Articles of pipe理员

以超级用户身份运行一个linux系统命令,使用python脚本

我已经得到了我的机器上安装的后缀,我正在以编程方式更新virtual_alias(使用Python)(在一些行动)。 一旦我更新/ etc / postfix / virtual_alias中的条目,我正在运行命令: sudo /usr/sbin/postmap /etc/postfix/virtual_alias 2>>/work/postfix_valias_errorfile 但我得到的错误: sudo: sorry, you must have a tty to run sudo 我想以非人的方式运行提到的sudo命令(也就是说,我正在从python脚本运行这个系统命令)。 那么如何让这个命令以编程方式运行?

具有poll()的命名pipe道上的O_RDWR

我已经经历了多种不同的命名pipe道客户端/服务器实现,但其中大部分使用读/写阻塞默认值。 因为我已经使用poll()来检查其他标志,但是通过poll()检查传入的FIFO数据也是一个好主意。 在所有的研究之后,我认为在O_RDWR模式下打开pipe道是防止在没有打开作者的情况下在pipe道上无限次数的EOF事件的唯一方法。 这样pipe道的两端都closures,其他客户端也可以打开可写入端。 要回应我会使用单独的pipe道… 我的问题是,虽然我发现了一些使用O_RDWR标志的例子,但open()手册页将该标志描述为分配给FIFO时正在使用。 ( http://linux.die.net/man/3/open ) 但是如何在不使用O_RDWR的情况下在pipe道上使用poll()呢? 你认为“O_RDWR”是一个合法的方式来打开pipe道?

每个TCP / IPnetworking连接使用多less内存?

平均每个TCP / IPnetworking连接占用多less内存(在内核地址空间中)?

由于内存不足导致分割错误

这段代码给了我大约1/2的分段错误时间: int main(int argc, char **argv) { float test[2619560]; int i; for(i = 0; i < 2619560; i++) test[i] = 1.0f; } 我实际上需要分配一个更大的数组,是否有某种方式允许操作系统让我获得更多的内存? 我正在使用Linux Ubuntu 9.10

Linuxpipe道作为input和输出

我想在Linux操作系统的C程序中执行以下操作: 使用系统调用(或2)创buildPIPE 使用exec()执行一个新的进程 将进程的STDIN连接到先前创build的pipe道。 将进程的输出连接到另一个PIPE。 这个想法是为了规避任何驱动器访问的性能目的。 我知道使用PIPE系统调用创buildpipe道非常简单,我可以使用popen创build一个用于input或输出目的的pipe道。 但是,如何在input和输出上做到这一点呢?

限制linux下R的内存使用

我们在Linux集群环境中运行R. 头节点有一些挂起时,用户无意中采取了所有的内存使用R进程。 有没有办法限制Linux下的内存使用情况? 我不想提出全球性的限制,但这可能是唯一的出路。

一些分配器是懒惰的吗?

我在Linux下编写了一个C程序mallocs内存,循环运行它,TOP没有显示任何内存消耗。 那么我已经做了一些内存,TOP显示内存消耗。 当我malloc,我真的“获得记忆”,还是有一个“懒惰”的内存pipe理,只有当我使用它时,给我的内存? (也有一个选项,TOP只知道内存消耗,当我使用它,所以我不知道这个..) 谢谢

带有/ dev / zero的mmap

假设我使用/ dev / zero使用mmap分配一个大内存(40MB),如下所示。 fd = open("/dev/zero", O_RDWR); a = mmap (0, 4096e4, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FILE, fd, 0); 我所理解的是,内核将把内存初始化为零,因为页面被带入物理内存(我认为现代Linux内核使用按需分页 )。 例如,当第一页被触摸并因此被带入物理内存时,内核将其全部4096个字节初始化为零,然后当第二页被触摸时,它将执行相同的操作,等等。 我的理解是正确的吗?

在纯bash中传递一个密码给ssh

我想通过一个bash脚本传递一个密码给ssh (是的,我知道有ssh密钥,我可以使用,但这不是我想要的)。 我发现一些使用expect解决scheme,但由于它不是一个标准的bash工具,我想知道如果我可以使用pipe道来做到这一点。 有人可以向我解释为什么像这样: echo "password\n" | ssh somehost.com 要么 ssh somehost.com <(echo "password\n") 不起作用? 有没有可能使其工作? 也许执行ssh作为一个不同的进程,获得其PID,然后直接发送一个string呢?

从内核分配用户空间内存

我正在打电话 sys_readlink(const char __user *path, char __user *buf, int bufsiz) 直接,但得到EFAULT错误代码。 出现此错误是因为buf指向内核空间的内存。 那么,有没有可能从内核分配用户空间内存? kmalloc(size, GFP_USER)与kmalloc(size, GFP_KERNEL)类似kmalloc(size, GFP_KERNEL)并返回指向内核内存的指针。