Articles of 进程

如何在Linux中redirect屏幕后台进程的所有输出?

试图找出为什么我们用screen运行一个特定的过程没有开始。 出于这个原因,能够将屏幕的输出redirect到文件是非常有用的(就像使用>指令一样)。 有没有一个好的方法来做到这一点? 我们运行的命令如下所示: screen -m -d -S some_name_to_reference_it my_program 请注意使用-m和-d来守护程序,并使用-S来生成会话名称。 非常感谢!

在Linux中顺序分配进程ID?

如果一个程序有P的pid,那么subprocess(和它们的subprocess)的pid是否严格大于P? 当pid被重用时,哪个pid被select,例如是最低pid可用?

在具有多个(物理)CPU的系统上的multithreading进程中,如何处理线程调度?

这是一个广泛的问题,但我很好奇在具有多个物理CPU的机器上的单个进程应用程序中的线程调度的细节。 编辑 – 想澄清下面即时通讯谈论phyiscal CPU。 我在处理多核CPU的过程/线程方面有很好的把握,但是我在主板上讨论了多个物理CPU染料(如2个4核Xeon)。 回答:感谢来自brokenfoot和nosid的反馈,我想我已经得到了: – Linux调度程序有不同的NUMA策略,影响线程调度,关于它们关于内核/染料的内存突变/访问模式。 – 染料之间的caching一致性是可能的,但如预期的那样较慢。 – 最佳行动scheme – 控制共享内存的可变性(尽量不可变) – 使用一个尊重线程局部性的内部(进程内)任务调度程序 – 使用NUMA策略,与您的进程内任务调度程序 假设: 高速caching一致性是允许多个内核在共享内存上运行的神奇function。 (确认) 据我所知,高速caching一致性可能在多个CPU上,但性能下降(Linux 3+,系统有多个现代多核Xeon CPU)。 (确认) 所以情况: 我有一个multithreading的单进程服务,并行处理…东西。 它可以有效利用多核心,并以一般避免cpu-corecaching缺失和一致性滥用的方式进行分割。 执行程序具有相对于任务的线程相关性。 服务线程可以使用共享数据(通常是不可变的)。 服务体系结构可以在同一个盒子上运行多个进程,但每个盒子只有一个进程(共享caching,资源等)是有利的。 问题: 多个CPU之间是否可以实现高速caching一致性? 这是否实用? (这是性能下降) linux将如何调度CPU之间的线程? (如果可能的话) 有没有办法将一个进程固定到单个CPU? (确认) 最终…我每个CPU和引脚做一个进程吗? 或者每个盒子1个(这很酷,如果我不把自己与缓慢的跨CPUcaching错过)(开始听起来像1进程是好的,只要我的并行任务有一定的线程和大多数不可变的数据的亲和力)

什么是RTW_CMD_THREAD负责?

亲爱的StackOverflow社区, 我有一个raspbian内核跟踪,并以某种方式过程“RTW_CMD_THREAD”中断我的dbus守护进程。 我在Google上找不到任何好的解释 你有什么想法这个过程呢?

为什么要在linux中为每个进程保留一个内核堆栈?

在linux中为每个进程保留一个不同的内核堆栈有什么意义? 为什么不为内核保留一个堆栈?

Linux进程描述符在哪里存储,什么可以访问?

我读过Linux中的进程描述符(在x86上)存储在内核数据段中,但在PAGE_OFFSET(即在用户地址空间中)的地址中。 由于内核数据段和用户数据段都覆盖了全部4GB的地址空间,因此如果用户代码知道其地址,则可能通过用户数据段访问进程描述符。 这是正确的,如果是的话,这不是一个安全漏洞? 一个相关的问题:有一个断言,进程描述符的线性地址可以作为一个唯一的进程ID。 但是,由于线性地址使用页表进行翻译,并且对于PAGE_OFFSET下的地址的每个进程,页表都不相同,那么两个进程不能将它们的进程描述符存储在相同的线性地址吗?

用sigaction(2)忽略`SIGCHLD`信号有什么用?

事实certificate,我们可以通过指定SIGCHLD信号来避免出现一个僵尸进程(即父进程不wait()的SIGCHLD ),通过指定SIGCHLD信号被父SIGCHLD忽略sigaction() 。 但是,似乎SIGCHLD默认情况下会被忽略。 这是如何工作的? int main (void) { struct sigaction sa; sa.sa_handler = SIG_IGN; //handle signal by ignoring sigemptyset(&sa.sa_mask); sa.sa_flags = 0; if (sigaction(SIGCHLD, &sa, 0) == -1) { perror(0); exit(1); } int pid = fork(); if (pid == 0) { //child process _exit(0); } do_something(); //parent process return 0; }

我如何附加到正在运行的进程,如在Linux上的debugging器?

什么系统调用被使用? 我想用它来读取分散在不同进程地址空间内的内存位置。 这是这个机制的合理用例吗?

如何在linux命令行中查看进程的命令行和环境variables

我希望能够看到启动给定进程(通过PID)的命令行及其环境variables。 最好从命令行,但脚本将是可以接受的失败。 这将在Centos 5.3上,但是越广泛越好。

如何获得衍生程序的返回码

这将运行一个程序,并给我返回代码。 int returnCode; returnCode = system(program); 我怎样才能用execv做同样的事情?