Articles of Linux操作系统

打开的文件太多,但是lsof显示打开文件的合法数量

我的Java程序失败了 Caused by: java.io.IOException: Too many open files at java.io.UnixFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(File.java:883)… 这里是/etc/security/limits.conf中的关键代码。 他们为用户设置最大文件为500k: root soft nofile 500000 root hard nofile 500000 * soft nofile 500000 * hard nofile 500000 我运行lsof来统计打开的文件数目 – 全局和jvm进程。 我在/proc/sys/fs检查了计数器。 一切似乎都没问题 我的进程只有4301个文件打开,限制为500k: :~# lsof | wc -l 5526 :~# lsof -uusername | wc -l 4301 :~# cat /proc/sys/fs/file-max 744363 :~# […]

如何等待进程完成使用IO.popen?

我在Ruby中使用IO.popen来在循环中运行一系列命令行命令。 然后我需要在循环之外运行另一个命令。 直到循环中的所有命令均已终止,循环外部的命令才能运行。 我如何让程序等待发生? 目前最后的命令运行得太快了。 一个例子: for foo in bar IO.popen(cmd_foo) end IO.popen(another_cmd) 所以所有的cmd_foos需要在another_cmd运行之前返回。

我如何确定栈上的返回地址?

我知道,如果我在里面的某个函数foo()从bar()函数中调用某处,那么这个返回地址被压入堆栈。 #include <stdio.h> void foo() { unsigned int x; printf("inside foo %x\n", &x); } int main() { foo(); printf("in main\n"); return 0; } 在上面的代码中,当foo函数处于活动状态时,我会得到第一个推送的本地variables的地址。 我怎样才能访问返回地址(主叫做foo),这个地址在堆栈之前的某个地方被推到了这个variables之前? 该位置是否固定,可以相对于第一个局部variables进行访问? 我怎样才能修改它? 编辑:我的环境是x86处理器与gcc编译器上的Ubuntu 9.04。

PHPMyadmin xampp错误

我拼命试图获得Linux的1.8.0 Ubuntu的12.04 LTS的xampp访问phpmyadmin。 我知道这是一个普遍的问题,但是我已经在networking上尝试了很multithreading,而且我仍然坚持着。 Xampp似乎运行良好,本地主机开始页面不错,包括链接到侧边栏的phpmyadmin。 当我按照这个链接,我得到一个403错误: 访问被禁止! 新的XAMPP安全概念: 只能从本地networking访问请求的目录。 该设置可以在文件“httpd-xampp.conf”中configuration。 如果您认为这是服务器错误,请与网站站长联系。 错误403 localhost Apache / 2.4.2(Unix)OpenSSL / 1.0.1c PHP / 5.4.4 我已经尝试了很多东西,包括修改httpd-xampp.conf,其相关的部分现在看起来像: http ://pastebin.com/J4f4tNVs 我的/opt/lampp/phpmyadmin/config.inc.php看起来像: http ://pastebin.com/5PZPXK5s 按照其他说明,我更改了/ lampp的所有权: chown -Rv nobody:root ./lampp/* 请帮帮我! 谢谢,Matt

通过shell脚本将用户添加到sudoers

是否可以通过shell脚本将用户添加到sudoers文件? 我一直在环顾四周,依然找不到任何东西。

通过ssh在Linux服务器上更改密码的脚本

我们的IT环境中有许多红帽Linux服务器。 我的团队成员要求我写一个脚本(最好是shell脚本),使用SSH一次性更改用户的密码。 我试图find一个解决scheme,但我发现许多脚本都使用Expect。 我们的服务器上没有安装Expect,系统pipe理员拒绝让我们安装它。 另外,用户没有root访问权限,因此passwd –stdin或chpasswd不能使用。 有什么方法可以编写脚本,以便用户可以在列表中的所有服务器上运行并更改只有他自己的用户的密码?

是否有可能使用Eclipsedebuggingmex代码?

我正在尝试写一些mex代码,但是用gbd在控制台上debugging是很痛苦的。 有没有可能使用Eclipse或Matlab的GUI? 如果这些不是可行的方法,那么编写mex代码的最佳方法是提供良好的debuggingfunction?

(客户端)直接连接到Redis的JavaScript?

有没有办法使用客户端(而不是Node.js)直接连接到Redis的JavaScript? 我已经为几个项目成功地使用了Node.js + PHP + Redis + Socket.io(用于客户端)。 不过,我真的认为这可以进一步简化为像PHP + Redis +浏览器JavaScript的东西 – 取出Node.js服务器,这是另一个服务器,我宁愿不使用,如果没有必要的。 对于简单的事情,我认为使用Javascript直接连接到Redis会更好。 据我所知,Redis只是通过一个端口来提供请求,所以任何可以向这个端口提出请求的语言都可以工作。 从理论上讲,你不能只使用客户端JavaScript的Redis服务器的端口? 我最感兴趣的是发布/订阅function,可能或不可能。 我不确定您是否可以使用AJAX访问非端口80端口,但是您在技术上应该能够使用Nginx反向代理将某个Redis的端口转发到端口80。 有任何想法吗? 只是一个想法。 我对目前的解决scheme感到非常满意,但是如果我们能够做得更好或者更高效,我们也不会感到痛苦。

在Linux上,在相同进程的线程之间切换上下文的开销

在Linux(x86和x86_64,主要是感兴趣的)上,同一进程的线程之间的上下文切换的成本是否有任何良好的经验数据? 我说的是在一个线程在用户空间中执行的最后一个指令之间的周期数或纳秒数,在自动地或非自愿地进入睡眠之前,并且第一个指令在同一个cpu / core上唤醒之后执行的同一进程的不同线程。 我写了一个快速的testing程序,它不断rdtsc在分配给同一个cpu / core的2个线程中执行rdtsc ,将结果存储在一个volatilevariables中,并与其姐妹线程的相应volatilevariables进行比较。 它第一次检测到姐妹线程的值发生变化,就会打印出差异,然后返回循环。 在Atom D510 CPU上,我得到的最低/中位数约为8900/9600。 这个程序看起来是否合理,数字是否可信? 我的目标是估计在现代系统中,每个连接线程的服务器模型是否可以与select型多路复用相比具有竞争性,甚至可以超越select型多路复用。 这在理论上似乎是合理的,因为从fd X执行IO到fd Y的过渡只涉及在一个线程中睡眠,而在另一个线程中唤醒,而不是多个系统调用,但是这取决于上下文切换的开销。

我需要在actionscript中开发哪些工具(在Linux中)

我以前从来没有开发Flash,但我有一个项目,我想使用一个ActionScript 3库,我不知道我需要什么工具启动。 使事情进一步复杂化,我的主要开发框是一个Ubuntu的框。 有没有我需要安装的任何必要的软件包? 或者我可以买的任何.deb的? 谢谢