Articles of 进程

在pipe道中获取命令输出,C为Linux

我需要运行一个Linux CLI命令,并从C中获取stdout输出 我可以使用pipe()来创build一个pipe道,然后fork / exec,在调用exec()之前将subprocess的stdout描述符redirect到pipe道中,并从父进程中的pipe道中读取数据。 另外我需要等孩子。 是否有一个简单的调用来做fork + redirect + exec + wait,就像system()做fork + exec + wait一样,只有system()不做redirect。 有popen(),它做叉+redirect+执行,但不做等待,所以我不能得到退出状态。

将32位库链接到64位程序

我有一个32位.so二进制只有库,我必须生成使用它的64位程序。 有没有一种方法来包装或转换它,所以它可以用于64位程序?

内存限制在64位Linux操作系统上运行的32位进程

一个32位进程在64位Linux上有多less虚拟内存(也就是说,在开始获取NULL指针之前,我可以分配多less内存并使用malloc() )? 我在我的32位Linux上试过了,达到了大约3GB的限制。 我能在64位Linux上获得更多的信息吗?

用python杀死进程

我需要做一个脚本,从用户获得以下内容: 1)进程名称(在Linux上)。 2)这个进程写入的日志文件名。 它需要杀死进程并确认进程已closures。 将日志文件名称更改为具有时间和date的新文件名称。 然后再次运行该进程,确认它已经启动,以便继续写入日志文件。 先谢谢您的帮助。

如何find所有的subprocess?

在我正在开发的基于Linux的项目中,我需要能够find我所有的subprocess。 每次开始logging都是不可行的 – 事后要find它们。 这需要是纯粹的C,我想这样做没有读/ proc。 有谁知道如何做到这一点?

linux:以编程方式获取另一个进程的父进程?

我试过谷歌,但发现getppid()获取当前进程的父pid。 我需要getppid(some_other_pid)类的东西,有这样的事情吗? 基本上需要一些进程的PID,并返回父进程的PID。

在Linux上更快地分配大型进程?

现代Linux上从一个大型stream程中获得与fork – execve组合相同效果的最快,最好的方法是什么? 我的问题是进程的分叉大到500MByte,而且一个简单的基准testing只能从进程中获得大约50个分支/秒(对于最小尺寸的进程来说比较是1600叉),这对于预期的应用来说太慢了。 一些谷歌search变成vfork被发明作为这个问题的解决scheme…但也警告不要使用它 。 现代Linux似乎已经获得了相关的clone和posix_spawn调用; 这些可能有帮助吗? 什么是vfork的现代替代品? 我在i7上使用了64位Debian Lenny(如果posix_spawn有帮助,该项目可以移动到Squeeze)。

如何杀死超过特定年龄的Linux进程?

我在某些服务器上有一些类似僵尸的进程出现问题,需要立刻杀掉。 我怎样才能最好地识别跑了一个多小时左右?

无法在PowerShell上导入MSOnline(Connect-MsolService错误)

我有这个问题,无法find任何答案。 问题是我试图使用Azure cdmlets通过c#代码连接到O365,但是我无法获得connect-msolservice 。 “尝试在Office 365中运行pipe理Windows PowerShell cmdlet”时出现“无法识别该术语”错误“

为什么OS不能使用整个64位进行寻址? 为什么只有48位?

我正在阅读“了解Linux内核”。 分页为64位体系结构 正如我们在前面的章节中看到的那样,32位微处理器通常使用两级分页。 但是,两级分页不适用于采用64位体系结构的计算机。 让我们用思维实验来解释为什么: 首先假设一个4 KB的标准页面大小。 由于1 KB覆盖2 10个地址的范围,因此4 KB覆盖2 12个地址,所以偏移字段为12位。 这会在表格和目录字段之间分配最多52位的线性地址。 如果我们现在决定只使用64位中的48位来寻址(这个限制使我们有一个舒适的256 TB地址空间!) ,其余的48-12 = 36位将不得不在表和字段字段之间拆分。 如果我们现在决定为这两个字段中的每一个保留18位,则每个进程的Page Directory和Page Table都应该包含2 18个条目,即超过256,000个条目。 “如果我们现在决定只使用64位中的48个寻址”。 为什么? &为什么只有48位? 为什么不是其他号码? 那么,我只是一个普通的PC用户和程序员。 它只是很难相信,32位寻址,即每个进程的4GB(2GB / 3GB更加正确)地址空间是一个限制。 如果你真的遇到这个限制。 请给我举个例子。 这个窗口的限制是什么? 我知道虚拟内存!=物理内存和处理器地址引脚与虚拟内存无关。 这是一个完全不同的问题。 如何知道处理器的地址引脚数(=地址总线的大小)。 http://ark.intel.com处理器的规格不包含此规格。 回答: 第一个问题见Paul Betts的答案是合理的。