Articles of pipe理员

mmap文件通过nfs共享?

情景A : 为了在同一主机上运行的两个进程之间共享一个读/写内存块,Joe将两个进程中的同一本地文件映射到一起。 情景B : 要在两个不同主机上运行的两个进程之间共享读/写内存块,Joe通过主机间的nfs共享一个文件,然后从两个进程中映射共享文件。 有没有人尝试过情景B? 情景B中出现的哪些额外问题不适用于情景A?

Linux命令 – pipe道命令

我试过下面的命令find ~/dir1 *.m4a | play find ~/dir1 *.m4a | play 目录dir1正好有1个m4a文件,我希望它被播放但是我得到一个使用错误从播放。 为什么?

停止MPlayer在Awesome WM中使用float

我明白,MPlayer调用“configurerequest”,因此,完全忽略了我的窗口pipe理器在Archlinux,AwesomeWM的规则,而不是平铺,它漂浮。 无论如何阻止这种情况发生? 谢谢!

创build一个文件作为tty与dup

好的,所以我有一个问题。 我必须使用execlp获取程序的输出,并使输出直接转到文件。 问题是程序只输出某些信息,如果它运行在一个tty,(我想它叫做isatty(3) )。 这是我的代码到目前为止 void main(){ int fd = open("file", O_WRONLY | O_CREAT | O_TRUNC, 0755); close(1); dup(fd); execlp("program","program",NULL); close(fd); } 我不想使用操作系统命令,如script (工作)等。 所以问题是,我怎么能“欺骗”程序,认为它正在写入一个tty?

ruby on rails未定义的方法`_delete'在rails 2.3.15中可以正常工作

ruby on rails未定义的方法`_delete'在rails 2.3.15中可以正常工作 ActionView::TemplateError (undefined method `_delete' for #<Exam:0x709f33664f48>) on line #105 of app/views/exam/_exam_marks_form.erb: 102: <td class="col-1"> 103: <div class="label-field-pair2"> 104: <div class="text-input-bg2"> 105: <%= exam_form.check_box :_delete %> 106: </div> 107: </div> 108: </td>

PHP执行exec('php -v')时出错返回垃圾(HTTP响应)

我有一个共享服务器Linux的基础上,我面临一个奇怪的问题。 我正在尝试通过PHP执行以下命令并运行正常; 返回我的PHP安装path/usr/bin/php 。 exec('which php');// This runs so exec is not disabled 但任何命令我尝试执行exec('php …'); 失败返回给我一个随机的98到114元素的数组,几乎全是垃圾。 我跑的命令的例子是… exec('php -v'); exec('php -i'); exec('/usr/bin/php -v'); 以上都没有回报什么明智的。 任何想法为什么任何命令运行的PHP不执行? 下面是exec()返回给我的数据数组的var_dump() 。 编辑(经过一些更多的RND) 我能够执行 exec('php -h') 并以可读格式重新构build了以下数组。 string(9) "php -help" string(47) "Usage: php [-q] [-h] [-s] [-v] [-i] [-f ]" string(27) " php [args…]" string(36) " -a Run interactively" string(69) […]

增加string的分配性能

我将Java GCtesting程序移植到C ++(请参阅下面的代码)以及Python。 Java和Python的性能比C ++要好得多,我认为这是因为每次调用new函数都必须创build这些string。 我已经尝试过使用Boost的fast_pool_allocator但实际上700毫秒到1200毫秒的性能恶化。 我使用分配器是错误的,还是有什么我应该做的? 编辑:用g++ -O3 -march=native –std=c++11 garbage.cpp -lboost_system编译g++ -O3 -march=native –std=c++11 garbage.cpp -lboost_system 。 g ++是版本4.8.1一个迭代需要Python约300ms,Java约50ms。 std::allocator给出大约700ms, boost::fast_pool_allocator给出大约1200ms。 #include <string> #include <vector> #include <chrono> #include <list> #include <iostream> #include <boost/pool/pool_alloc.hpp> #include <memory> //#include <gc/gc_allocator.h> using namespace std; #include <sstream> typedef boost::fast_pool_allocator<char> c_allocator; //typedef std::allocator<char> c_allocator; typedef basic_string<char, char_traits<char>, c_allocator> pool_string; […]

如何有select地把内存交换? (Linux)的

在内存被分配的情况下,已知它(几乎肯定/可能)将很长时间不会被使用,因此标记该内存以更积极地移入交换空间可能是有用的。 有没有一些命令来告诉内核呢? 如果不这样做,最好把这些文件转储到临时文件中,但是我很好奇发送到交换(或类似的东西)的能力。 当然,如果没有交换空间,这将什么也不做,在这种情况下写临时文件可能会更好。

如何为Linux进程分配“内存优先级”?

我在一个小型的OpenWRT路由器上运行,由于可用的RAM(32mb)数量有限,无法避免交换。 大多数情况下,路由器不会做任何其他的事情,但有时还会访问路由器上运行的postgresql数据库。 由于tor不断运行,postgresql完全交换出来,前几个访问有很高的延迟,这是不好的,因为它是一个交互使用的系统。 我已经给postgres和+15分配了一个很好的值-15,但是这对内存pipe理没有太大的影响。 在全局设置swappiness = 1也不会改变事情,因为交换是不可避免的,而且因为postgresql大部分时间都没有运行,所以它总是被换出来。 有没有办法像Linux进程的内存优先级? 我看看特定于cgroup的swappiness,但是我发现的唯一的描述是它影响了决策页面cachingvs swap。 我正在寻找的是一个参数,告诉Linux内核不会像其他进程(但我不想mlock整个过程)交换postgresql积极。 或者将为postgresql分配swappiness = 80系统范围和swapiness = 1在内存中保留postgresql,同时在需要时将其他任何东西换出?

在保持第一线的同时保持良好状态

我想了解这个奇特的行为。 基本上,我试图grep一个命令的输出,同时仍然保持第一行/头。 我在这里先向您的帮助表示感谢。 成功案例 ps -ef | { head -1; grep bash; } 输出: UID PID PPID C STIME TTY TIME CMD username 1008 1 0 Jan21 tty1 00:00:00 -bash username 1173 1008 0 Jan21 tty1 00:00:00 -bash 失败的案例 ls -tlrh / | { head -1; grep tmp; } 输出: total 100K (即:它忽略/tmp文件夹)