草庐IT

linux - 如何在 Linux 操作系统中获取一个进程组中的 pids

我有一个关于Linuxpid的问题。如何在同一组中获取pid?在Linux中用'ps'命令获取所有的pids或pgid似乎很容易,但是如何获取属于同一组的pids,或者换句话说,如何获取同一个程序的pids呢?有人请给我一些帮助吗?谢谢! 最佳答案 来自manpsToprintaprocesstree:ps-ejHpsaxjfpstree也有帮助更新:使用pidof查找指定程序的进程pids。例如pidofchrome将获取所有chromepids。 关于linux-如何在Linux操作

linux - 在 system() 之后获取子 PID

据我所知,system()调用在内部使用了fork()和exec()但为了更容易封装它们处理。是否可以从system()调用创建的子进程中获取PID?目标:我希望能够在特定超时后对任何子进程发出信号。我可以使用fork()和exec()重建system()函数。但我只需要child的PID,也许使用system()有捷径? 最佳答案 通常,system()是一个同步操作。这意味着在子进程退出之前它不会返回,即当system()时子进程没有有效的PID。返回,因为子进程不再存在。 关于li

linux - Upstart 跟踪错误的 Bluepill PID

我有bluepill设置来监控我的delayed_job进程。使用Ubuntu12.04。我正在使用Ubuntu的upstart启动和监控bluepill服务本身。我的Upstart配置如下(/etc/init/bluepill.conf)。description"Startupthebluepillservice"startonrunlevel[2]stoponrunlevel[016]expectforkexecsudo/home/deploy/.rvm/wrappers//bluepillload/home/deploy/websites//current/config/serv

linux - 跨机器跟踪 pids (ssh)

我基本上是在尝试编写类似pstree的命令,除了它应该遵循跨机器的进程。我的意思是如果我运行这个:$ssh$nodesleep1000然后命令应该显示如下内容:ssh$node--($node)sleep1000如果我在运行:$ssh$nodessh$nodesleep1000ssh$node---($node)ssh$node---($node)sleep1000等等...我的问题是:如何将一台机器上的一个sshsession映射到另一台机器上的衍生进程?本地父子进程不是问题,但我如何找出一个节点上的哪个ssh命令触发了另一个节点上的另一个进程。Linux2.6.18仅openSSH

.net - 如何检查具有给定 PID 的进程是否正在运行?

我有一个用C#编写的程序,使用Mono在Linux上运行。该程序将其PID写入文件。现在我想检查具有此PID的进程是否在启动时运行。有没有办法使用单声道?如果没有,我如何使用标准的Linux函数/工具完成此操作?还是我必须检查/proc/PID/cmdline? 最佳答案 标准功能是运行kill-0PID以查看进程是否正在运行并检查退出代码,0函数正在运行。 关于.net-如何检查具有给定PID的进程是否正在运行?,我们在StackOverflow上找到一个类似的问题:

linux - 当前执行进程的pid

friend们,我正在尝试跟踪操作系统的完整执行,包括在其上运行的进程。为此,我想要每个进程执行的指令及其执行跟踪,我想这样做而不必去获取每个进程的objdump。所以我的目标是:1)构建每个pid的地址空间。2)跟踪每个pid的执行情况。为了实现上述目标,我在模拟器Qemu上运行了一个基于linux的操作系统。当qemu第一次遇到指令时,我会使用io端口或客户机中已知的物理内存地址检查运行该指令的进程的pid。然后我可以使用这些信息来做我想做的事情。我的问题是......我可以在kernel/sched.c的哪个位置知道接下来要执行的进程的pid。意味着我无法计算像->launch_

linux - RCHAR 是否包含 READ_BYTES (proc/<pid>/io)?

我读了proc//io测量SQL查询的IO事件,其中是数据库服务器的PID。我在每次查询之前和之后读取值以计算差异并获取请求导致读取和/或写入的字节数。据我所知的领域READ_BYTES计算实际磁盘IO,而RCHAR包括更多,例如linux页面缓存可以满足的读取(请参阅Understandingthecountersin/proc/[pid]/io了解详情)。这导致了假设,即RCHAR应该得出等于或大于READ_BYTES的值,但我的结果与这个假设相矛盾。我可以想象我为InfobrightICE获得的结果有一些小的block或页面开销(值是MB):QueryRCHARREAD_BYTE

c++ - basic_filebuf::underflow 错误读取文件与 ifstream on/proc/pid/stat

为什么下面的代码会抛出异常?请注意,该文件是一个/proc/pid/stat文件,因此它可能会受到内核的干扰。//Checkedthatfiledoesexisttry{std::ifstreamfile(path.c_str());//Shouldn'tevenbenecessarybecauseit'sthedefaultbutitdoesn't//makeanydifference.file.exceptions(std::ifstream::goodbit);//Readthestreamintomanyfields//!!!!Theexceptionwasthrownhere

linux - 如何从 pid 获取 xid(反之亦然)?

如何从xid(X窗口标识符)获取pid?如何获取给定pid的xid列表?(假设所有应用程序都以DISPLAY=:0运行,没有使用网络透明性)我期待这样的事情:挖掘/proc/$pid/fd/以跟踪与X服务器的连接按照该连接,挖掘/proc/`pidofX`/fd深入了解X,因为它应该知道如何将与它的连接映射到窗口。 最佳答案 你可以使用xprop-id_NET_WM_PID获取相关窗口的PID属性。您应该知道窗口的窗口ID,并非所有应用程序都设置_NET_WM_PID原子。 关于linu

linux - 如果我安装了 SIGCHLD 处理程序,对特定 pid 的 *blocking* 等待是否仍然有效?

我有一些东西使用一堆异步分支来完成它的工作(在工具包下)。在特定的代码区域,我fork,然后在子进程上进行阻塞等待。SIGCHLD处理程序是否会在阻塞等待看到信号之前吞噬信号,让我可能挂起,或者等待总是会得到一些东西? 最佳答案 SIGCHLD处理程序在子进程退出的事件边缘被触发。对waitpid()的阻塞调用将等待该特定子进程的条件、级别不再存在。当进程退出时,将传递一个SIGCHLD,其处理程序将正常执行。如果该进程上有waitpid()阻塞,它将正常返回,而不管是否存在信号处理程序。