Tag: 进程

什么是最有效的node.js进程间通信库/方法?

我们有几个node.js进程应该能够传递消息,那么最有效的方法是什么? 如何使用node_redis pub / sub 编辑:进程可能运行在不同的机器上

确保subprocess在退出Python程序时死亡

有没有办法确保在Python程序退出时所有创build的subprocess都已经死了? subprocess我的意思是用subprocess.Popen()创build的。 如果不是,我是否应该遍历所有发行的杀戮,然后杀死-9? 什么更干净?

当谈论线程和进程时,为什么说“不要同时格式化软盘”的评论很有趣?

我正在阅读Thread和Processes之间的区别, 并在第二个答案中提到用户留下的评论 只要您不要同时格式化软盘。 它有27个投票,但没有人解释它背后的原因。 我想知道评论者在提到上述评论时意味着什么? 有人可以build议一个更有意义的问题名称,这反映了问题的要求

任何良好和简单的RPC库进程间调用?

我需要发送一个(可能是一个)简单的单向命令从客户端进程到服务器进程,内置C ++types的参数(所以序列化非常简单)。 C ++,Windows XP +。 我正在寻找一个不需要复杂的configuration,提供简单的界面,不需要几个小时的学习,并没有商业使用的限制。 简单的问题的解决scheme。 Boost.Interprocess对于这个简单的任务太低级,因为不提供RPC接口。 套接字也可能是一个矫枉过正,因为我不需要在机器之间进行通信。 关于DCOM,CORBA等也是如此。 命名pipe道? 从来没有使用过,WinAPI上的任何好的库? 的openmpi?

什么是进程和线程?

是的,我已经阅读了许多与操作系统相关的资料。 而我仍然在阅读。 但是,似乎他们都是以“抽象”的方式来描述过程和线索,这使得他们的行为和逻辑组织得到了很多高层次的阐述。 我想知道他们身体是什么? 在我看来,它们只是内核代码中维护和使用的一些内存“数据结构”,以方便程序的执行。 例如,操作系统使用一些过程数据结构(PCB)来描述为某个程序分配的过程的方面,例如其优先级,地址空间等等。 这样好吗?

fork()如何知道何时返回0?

以下面的例子: int main(void) { pid_t pid; pid = fork(); if (pid == 0) ChildProcess(); else ParentProcess(); } 所以纠正我,如果我错了,一旦fork()执行一个subprocess创build。 现在通过这个答案 fork()返回两次。 这是一次为父进程,一次为subprocess。 这意味着两个独立的进程在fork调用期间生成,而不是在结束之后生成。 现在我不明白它如何理解如何为subprocess返回0和为父进程正确的PID。 这在哪里变得非常混乱。 这个答案指出fork()通过复制进程的上下文信息并手动将返回值设置为0来工作。 首先我正确地说,返回任何函数都放在一个寄存器中? 由于在单个处理器环境中,一个进程只能调用一个只返回一个值的子例程(如果我在这里错了,请纠正我)。 比方说,我在一个例程中调用一个函数foo(),该函数返回一个值,该值将被存储在一个寄存器中,比如BAR。 每次函数想要返回一个值,它都将使用一个特定的处理器寄存器。 所以,如果我能够手动更改过程块中的返回值,我可以更改返回到该function的值? 所以我正确地认为fork()是如何工作的?

在UNIX系统上杀死一个不存在的进程

我的系统上有一个不存在的进程: abc 22093 19508 0 23:29 pts/4 00:00:00 grep ProcA abc 31756 1 0 Dec08 ? 00:00:00 [ProcA_my_collect] <defunct> 如何在不重启机器的情况下杀死上述进程? 我曾尝试过 kill -9 31756 sudo kill -9 31756

会话和进程组在Unix中的用法和含义?

Unix进程有一个会话ID,是进程组的一部分 – 可以用诸如setsid()/ getpgrp()之类的函数来改变/查询进程组。 然而,过程组和会话的概念总是不见了,有谁能够解释具有不同会话和过程组提供了什么意义 – 为什么/何时想创build一个新会话或在同一个会话和/或过程组中放置多个过程?

Ctrl-C如何终止subprocess?

我想了解如何CTRL + C终止一个孩子,但不是一个父进程。 我在一些像bash这样的脚本shell中看到了这种行为,您可以在其中启动一些长时间运行的进程,然后通过inputCTRL – C并将控制返回到shell来终止它。 你能解释它是如何工作的,特别是为什么不是父(shell)进程终止? shell是否必须对CTRL + C事件做一些特殊的处理,如果是,它究竟做了什么?

我如何设置Java程序的进程名称?

如果启动了一个Java程序,它会在系统进程中监视名称java。 很多Java程序都很难区分。 所以,如果存在方法,设置名称将会很好,该名称将显示在进程监视器中。 我知道这可能在不同的操作系统上有所不同。 一个简单的方法是,如果Java解释器将支持一个开关来设置名称,如下所示: java -processname MyProgram -jar MyProgram 但是我找不到这样的开关,所以可能是不存在的。 用Java设置进程名的API也可以。 那么,你有什么build议?