Articles of pipe理员

在Linux中使用pipe道的进程间通信

我已经写了我的代码编写一个数字在Linuxpipe道。 它是一样的,但它是显示错误,任何人都可以帮助我。 基本上这个程序的问题陈述如下: – 一个程序将打开一个pipe道,向pipe道写一个数字。 – 其他程序将打开相同的pipe道,将读取数字并打印它们。 – closures两个pipe道 int main() { int number; FILE *fout; fout = popen(" ","w"); pclose(fout); return 0; } 现在我的问题是我应该给popen命令选项(如上面显示的空白)什么命令,以便我可以进一步进行并编写一个数字pipe道。

检查RPM依赖关系

在Ubuntu上使用.deb软件包安装编程时,可以使用Ubuntu软件包search来检查软件包的依赖关系。 例如,我可以从这里看到Wireshark的依赖关系。 正如你所看到的,由红色子弹标记的依赖关系。 如果你知道所有的程序包依赖于你,你可以下载它们并安装dpkg 。 有没有其他的RPM软件包的网站? 特别针对RHEL? 我知道我可以通过其他方法获得这些软件包的名字,比如使用rpm -i安装RPM软件包,但是这不是用户友好的,需要访问运行linux。

Linux:pipe入Python(ncurses)脚本,stdin和termios

显然,这几乎是“ 糟糕的pipe道filedescriptor从Python中的标准input读取时重复- Stack Overflow ”; 不过,我认为这个情况稍微复杂一些( 而且这不是Windows特有的,因为这个线程的结论是 )。 我正在尝试在Python中使用一个简单的脚本:我想为脚本提供input – 通过命令行参数; 或者通过将一个string“pipe”到这个脚本中 – 并使脚本使用cursesterminal接口显示这个inputstring。 完整的脚本,在这里被称为testcurses.py ,如下所示。 问题是,每当我尝试实际的pipe道,似乎搞乱标准input, curses窗口永远不会显示。 这是一个terminal输出: ## CASE 1: THROUGH COMMAND LINE ARGUMENT (arg being stdin): ## $ ./testcurses.py – ['-'] 1 stdout/stdin (obj): <open file '<stdout>', mode 'w' at 0xb77dc078> <open file '<stdin>', mode 'r' at 0xb77dc020> stdout/stdin (fn): 1 0 […]

C Minishell添加pipe道

所以我正在制作一个UNIX minishell,并试图添加pipe道,所以我可以做这样的事情: ps aux | grep dh | grep -v grep | cut -c1-5 不过,我在缠绕pipe道部分时遇到了麻烦。 我把所有的“|” 字符为0,然后将每行作为普通线路运行。 但是,我试图转移输出和input。 一个命令的input需要是前一个命令的输出,一个命令的输出需要是下一个命令的input。 我正在做这个使用pipe道,但是我不知道在哪里调用pipe()以及在哪里closures它们。 从主处理函数processline()中,我有这样的代码: if((pix = findUnquotChar(line_itr, '|'))) { line_itr[pix++] = 0; if(pipe (fd) < 0) perror("pipe"); processline(line_itr, inFD, fd[1], pl_flags); line_itr = &(line_itr[pix]); while((pix = findUnquotChar(line_itr, '|')) && pix < line_len) { line_itr[pix++] = 0; //? if(pipe […]

在部署Capistrano之后Rails资产缺失

我正在构build一个VPS,并通过Capistrano,数据库连接等部署,但没有可用的资源页面 – 这是基本的HTML只。 资产似乎被编译,并存在于共享目录中。 从页面html: <link href="/assets/application-a1b5d69aeaff709fd3dce163c559b38b.css" media="all" rel="stylesheet" type="text/css" /> <script src="/assets/application-0ebd07089629f8c6880dddfb688d525d.js" type="text/javascript"></script> 资产文件似乎存在于共享目录中: assay@assaypipeline:~/apps/assay/shared/assets$ ls application- a1b5d69aeaff709fd3dce163c559b38b.css application-a1b5d69aeaff709fd3dce163c559b38b.css 当我查看,源 ,然后单击资产path的超链接,我得到一个404 Nginx找不到。 解 感谢Martin M(接受答案)的帮助。 我从服务器上的〜/ apps /(应用程序名称)/当前目录中执行的步骤。 $ bundle install $ RAILS_ENV=production bundle exec rake assets:precompile $ sudo service nginx restart 显然,将这​​个包含在Capistrano食谱中会更好。 * 编辑 – Capfile * load 'deploy' load 'deploy/assets' load 'config/deploy'

如何通过SFTP将远程服务器上的LS的输出传输到本地文件系统?

我通过命令行通过SFTPlogin到远程服务器。 我所在的文件夹包含数十万个文件。 我需要在文本文件中获取这些文件的列表,以便我可以通过编程访问它们,因为没有一个PHP SFTP客户端能够返回如此庞大的文件列表。 当我在目录上运行ls (在SFTP会话中)时,文件列表最后显示大约需要20分钟。 我没有这个服务器上的写访问权限,所以我不能将输出传送到远程服务器上的一个文件。 我怎样才能输出到我的本地机器上的文本文件…或获取文件列表到我的本地机器一些其他方式?

shell如何处理无限循环

无论何时我需要限制shell命令输出,我使用较less的分页结果: cat file_with_long_content | less 这工作得很好,但是我很好奇,即使输出永远不会结束,仍然可以工作,请考虑在inf.sh文件中使用以下脚本: while true; do date; done 然后我跑 sh inf.sh | less 而且它仍然可以对结果进行重新分页,所以说pipe道输出结果而不是等待命令完成才能输出结果是正确的吗?

在不同的执行过程中保持FIFO可读

我从来没有使用过一个命名pipe道,最近才意识到这正是我所需要的。 我正在运行一个使用gnu parallel的程序,这个程序可能会产生为mySQL上的一个数据库格式化的输出(GB到1TB,现在很难知道)。 我发现我可以打开两个terminal:terminal1得到如下的东西: find . -type f -name "*.h" | parallel –jobs 12 'cprogram {}' > /home/pipe 在哪里pipe道是由mkfifo制成的fifo。 在第二个terminal上,我运行一个类似这样的命令: mysql DataBaseName -e "LOAD DATA LOCAL INFILE '/home/pipe' INTO TABLE tableName"; 有用… 但是,这很笨拙…如果我理解正确,第一个过程结束时会产生一个EOF,导致pipe道closures。 理想情况下,我想在不同参数的循环中运行第一个进程。 每次迭代可能需要很长时间,我需要进行合理性检查,所以我不会松懈一周,以查明是否有错误或逻辑错误。 我想知道如何以标准的方式使用FIFO这种程序。

POSIX:FreeBSD vs Linux中的pipe道系统调用

在Linux(2.6.35-22-generic)中, man pipe指出 pipe()创build一个pipe道,一个可用于进程间通信的单向数据通道。“ 在FreeBSD(6.3-RELEASE-p5)中, man pipe指出 pipe()系统调用创build一个pipe道,这是一个允许双向数据stream的对象,并分配一对文件描述符。 一个是单向的,另一个是双向的。 我希望这不是一个愚蠢的问题,但哪种方法是这样做的标准方式? 他们都符合POSIX? 为了使我的意图清楚,我相信pipe()是一种方法,并且正在寻找一些弹药以获得任何点数,因此在考试中丢失了一些分数; p

在添加新的veth界面时运行脚本

Docker为每个创build的容器创build一个连接到桥( docker0 )的veth接口。 http://docs.docker.io/use/networking/ 我想限制这些新的veth接口的带宽。 我find了一个与奇迹般的做法。 不过,我想自动化这一点。 有没有办法让钩子在每次连接一个新的veth接口时运行一个脚本? 我已经研究过在/etc/network/if-up.d/添加脚本,但是只有在启动时veth添加veth 。 以下是我想要通知的一些系统日志。 我知道我可以尾巴这些日志,但是这种方法似乎有点哈克,必须有一种方式通过操作系统得到这个事件的通知。 May 2 23:28:41 ip-10-171-7-2 kernel: [22170163.565812] netlink: 1 bytes leftover after parsing attributes. May 2 23:28:42 ip-10-171-7-2 kernel: [22170163.720571] IPv6: ADDRCONF(NETDEV_UP): veth5964: link is not ready May 2 23:28:42 ip-10-171-7-2 kernel: [22170163.720587] device veth5964 entered promiscuous mode May 2 23:28:42 ip-10-171-7-2 avahi-daemon[1006]: Withdrawing […]