Articles of Ubuntu

如何将进程状态从睡眠状态更改为在Linux中运行?

我有一个python程序需要扫描一些大的日志文件来提取有用的信息。 在这个程序中,为了更好地利用服务器(运行Ubuntu 12.04 LTS,拥有64个内核和96 GB内存)的计算资源, 我创build了一个大小为10的进程池,并向这些池工作者应用服务器。 每个作业使用file.readlines()从几个大文件(每个大约file.readlines() ,共20个文件)中file.readlines() ,然后逐行分析以find有用的信息并将结果保存到字典中。 在所有文件被扫描和分析之后,结果字典被写入磁盘。 另外,在整个脚本中没有显式调用gc.collect() 。 我使用root账号在服务器上启动了这个程序,这些程序首先运行正常:这个程序的每个进程将占用大约3.8GB的内存,所以共有40GB 几个小时后, 其他用户启动另一个耗费内存的程序(也使用root帐户),它积极使用几乎所有的内存(占内存总量的99%),之后该程序被CTRL-Z中断, killall -9 process_name 但是,在这之后,我发现我的大部分池工的进程状态已经改为S,这些睡眠进程的CPU使用率降为0.根据man top : The status of the task which can be one of: 'D' = uninterruptible sleep, 'R' = running, 'S' = sleeping, 'T' = traced or stopped, 'Z' = zombie 我使用ps -axl命令来检查进程正在hibernate的内核函数的名称, 事实certificate这些poolworker进程在_fastMutex上_fastMutex 。 这种情况会持续很长一段时间(进程状态现在仍然是S),我不想重新启动我的进程再次扫描所有文件, 我怎么能改变这些进程从睡眠状态到运行?

编译问题在linux上

所以我在linux(Ubuntu)中使用emacs文本编辑器编写了下面的代码,它基本上应该将传入的分隔符中的string分开。 当我运行它segfaulted我运行它通过GDB,它给了我一个错误在strcpy(我没有调用),但可能在sprintf隐式完成。 我没有想到我做了什么错误,所以我启动到Windows,并通过Visual Studio运行它,它工作正常,我是新的Linux编写C,并知道问题是在While循环,我打电话sprintf()(哪是奇怪的,因为在循环之外的调用写入而不会导致错误)将令牌写入数组。 如果有人能告诉我哪里出错,我将不胜感激。 这是代码 /* split() Description: – takes a string and splits it into substrings "on" the <delimeter>*/ void split(char *string, char *delimiter) { int i; int count = 0; char *token; //large temporary buffer to over compensate for the fact that we have //no idea how many arguments will be passed […]

AVR ISP MKII,avrdude,Ubuntu 11.10

所以,我以前在Ubuntu上工作过。 但后来我升级到11.10。 现在,没有这样的运气。 注意:如果你仍然在搞这个在eclipse上工作,你可能想尝试这个命令行的东西…如果它不工作在这里,它不会在eclipse中工作。 我有这个错误: avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. 我已经尝试过所有不同的configuration。 即:-B 1,10,1000, -F没有帮助,那么你只是得到000000或任何你的序列。 另外,我应该从下面的输出中清楚地看到,可以看到程序员,甚至是目标板,并读取其电压。 你也可以看到目标芯片复位。 (即:我已经testing了一些包含DB101的设备,你可以看到它何时重置) 完整的输出是这样的: > avrdude -c avrispmkII -P usb -p m1281 -B 100 […]

Linux的权限(LAMP)

我正在尝试在/ var / www中使用安全权限configurationLinux服务器。 我读过,你不应该由于各种原因将你的用户帐户添加到www-data组。 相反,最好(我被告知)要创build一个独立的开发人员组。 以下是我想到的: group add developers usermod -a -G developers my_account chown -R root:developers /var/www find /var/www/ -type d -exec chmod 775 {} \; find /var/www -type d -print | xargs chmod g+rwxs find /var/www/ -type f -exec chmod 664 {} \; 另外,编辑/ etc / apache2 / envvars并添加: umask 002 问题: […]

如何使用pipeparsing命令的输出

我想处理一个进程的输出,比如ifconfig。 因为你都知道ifconfig的输出是包含inet addr: mask的行的列表:但是我想单独提取ip [来自inet addr:field]并列出它。 有没有可能与pipe道命令? 喜欢 ifconfig | What should be here? 我想把这个命令的输出作为inet addresses列表(如果存在的话,不同的访问点)。

我可以从Java程序更改在Linux的用户密码?

我正在尝试通过在outputstream中发送密码来更改linux中的用户密码,但是它没有完成。 我的Java程序就像 Process process = Runtime.getRuntime().exec("sudo passwd sampleuser"); OutputStream outputStream = process.getOutputStream(); InputStream inputStream = process.getInputStream(); PrintWriter printWriter=new PrintWriter(outputStream); printWriter.write("123456"); printWriter.write("\n"); printWriter.flush(); 我的程序在这里失败,它要求密码,但我不希望这种情况。 有没有可能从Java程序提供密码? 你可以build议我,我将如何成功地做到这一点,或者是否有任何shell API可用。 当我尝试使用shell脚本并从我的java程序中调用它时,同样的事情就成功了 Process process = Runtime.getRuntime().exec("bash first.sh"); 我的shell脚本是 i="123456" echo -e $i"\n"$i|sudo -S passwd sampleuser 它成功地更改了用户密码。

在Linux(Ubuntu)中编译基本C语言CUDA代码

我花了很多时间在运行Ubuntu Linux(11.04)的机器上设置CUDA工具链。 钻机有两个NVIDIA Tesla GPU,我可以编译并运行NVIDIA GPU计算SDK中的testing程序,例如deviceQuery,deviceQueryDrv和bandwidthTest。 当我尝试从书籍和在线资源中编译基本的示例程序时,出现了一些问题。 我知道你应该用NVCC进行编译,但是每当我使用它的时候都会收到编译错误。 基本上任何涉及CUDA库的include语句都会导致缺less文件/库错误。 一个例子是: #include <cutil.h> 我是否需要某种makefile来将编译器指向这些库,或者在编译NVCC时是否需要设置其他标志? 我遵循这些指南: http://hdfpga.blogspot.com/2011/05/install-cuda-40-on-ubuntu-1104.html http://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc /CUDA_C_Getting_Started_Linux.pdf

Linux / Unix检查VPN连接是否处于活动状态

我有一个代码,检测OpenVPN连接是否打开或closures: if echo 'ifconfig tun0' | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00" then echo "VPN up" else echo "VPN down" fi exit 0 现在我试图重新编写代码来使用PPTP或IPSEC连接。 我试过做: if echo 'ifconfig ppp0' | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00" 或与ipsec相同,但不起作用。 有没有其他方法来检测PPTP或IPSEC连接?

我如何交叉编译GNU GLEW到windows我正在交叉编译的程序?

我正在用OpenGL,GLU,freeGLUT,GLEW和SOIL(一个用于opengl纹理的图像加载器)开发一个小项目。 我想交叉编译我的项目到Windows,因为它最终会成为我打算销售的游戏,而更多的人使用Windows而不是Linux。 不幸的是,我使用的交叉编译器MinGW不支持在GLEW网站上预build的GLEW库。 我已经下载了GLEW源代码包,我怎样才能编译成libglew32.a(和其他两个文件,我忘了名字,我认为是一个静态版本)我需要的文件? 有一个makefile已经包括,我应该使用? (我只是不确定这是否会使一个图书馆可用于MinGW) TL; DR如何在ubuntu上为MinGW编译GLEW?

从历史logging执行一系列命令

我正在使用Ubuntu,我想重复一些我执行的命令。 我试过类似的东西 for i in $(seq 2006 2013); do \!$i; done; 但失败了,因为shell试图执行命令'!2006'。 man history 也没有向我透露如何重复一系列命令。