问题标签 [pid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
1823 浏览

perl - 如何在 Perl 中快速找到用户的终端 PID?

以下代码片段用于查找用户终端的 PID,方法是使用 ptree 并从它返回的结果中获取第三个PID。所有终端 PID 都以用户登录作为密钥存储在哈希中。

下面是一个示例 ptree 执行:

我想知道是否有更好的编码方法。这是脚本中运行时间最长的部分。

注意:此代码与其他代码片段一起位于循环内并执行了几次。

0 投票
14 回答
132345 浏览

python - 如何检查Python中是否存在具有给定pid的进程?

有没有办法检查 pid 是否对应于有效进程?我从不同于 from 的其他来源获取 pid os.getpid(),我需要检查机器上是否不存在具有该 pid 的进程。

我需要它在 Unix 和 Windows 中可用。我还在检查 PID 是否未在使用中。

0 投票
4 回答
7407 浏览

python - 确定(Windows)上是否存在PID的快速方法?

我意识到“快速”有点主观,所以我会用一些上下文来解释。我正在开发一个名为psutil的 Python 模块,用于以跨平台方式读取进程信息。其中一个函数是pid_exists(pid)用于确定PID是否在当前进程列表中的函数。

现在我正在以明显的方式执行此操作,使用EnumProcesses()拉取进程列表,然后遍历列表并查找 PID。但是,一些简单的基准测试表明,这比基于 UNIX 的平台(Linux、OS X、FreeBSD)上的 pid_exists 函数要慢得多,我们使用kill(pid, 0)0 信号来确定 PID 是否存在。额外的测试表明,几乎所有时间都在占用 EnumProcesses。

任何人都知道比使用 EnumProcesses 确定 PID 是否存在更快的方法吗?我尝试了OpenProcess()并检查打开不存在的进程是否有错误,但结果证明这比遍历 EnumProcesses 列表慢 4 倍以上,所以这也是如此。还有其他(更好的)建议吗?

注意:这是一个 Python 库,旨在避免第三方库依赖项,如 pywin32 扩展。我需要一个比我们当前代码更快的解决方案,并且不依赖于 pywin32 或标准 Python 发行版中不存在的其他模块。

编辑:澄清 - 我们很清楚阅读过程信息中存在固有的竞争条件。如果在数据收集过程中流程消失或遇到其他问题,我们会引发异常。pid_exists() 函数并非旨在替换正确的错误处理。

更新:显然我早期的基准测试存在缺陷——我用 C 语言编写了一些简单的测试应用程序,并且 EnumProcesses 始终运行较慢,而 OpenProcess(与 GetProcessExitCode 结合,以防 PID 有效但进程已停止)实际上更快而不是更慢。

0 投票
2 回答
1072 浏览

windows - 返回进程id

我有这个问题想要解决。让我们认为我们有这种情况。我们有一个notepad.exe 实例正在运行。我运行另一个notepad.exe。现在我想杀死后者。我该怎么做?

如果我能够知道最后一个 notepad.exe 的 pid,那么我可以杀死它。但是如何获取上次打开程序的 PID 呢?

另一种方法是给每个应用程序一个唯一的图像名称。据我所知,这似乎是不可能的,因为图像名称是硬编码到二进制文件中的。

那么有什么想法吗?

PS 正如您已经注意到的,这一切都在 Windows 中。

0 投票
7 回答
86703 浏览

c# - 如何列出在 Windows 中运行的所有进程?

我想找到一种方法来遍历所有活动进程并对它们进行诊断检查(内存使用情况、cpu 时间等),有点类似于任务管理器。

问题分为两部分:

  1. 查找所有进程
  2. 查找有关它们的诊断属性

我什至不确定要在哪个名称空间中查找它。任何帮助/提示/链接都将不胜感激。

0 投票
10 回答
40436 浏览

.net - IIS 应用程序池 PID

是否有人熟悉获取与进程 ID 关联的应用程序池的方法?我正在使用 Win32_Process 查询 W3WP 服务并返回 PID 现在我正在尝试获取与之关联的应用程序池。

0 投票
3 回答
13308 浏览

java - 如何编写java程序获取pid

如何编写java程序获取pid?

0 投票
9 回答
17941 浏览

c# - 从 MS-Word ApplicationClass 获取 PID?

考虑这段代码:

我可以从 _application 启动的 Winword.exe 进程中获取 PID 吗?

我需要 PID,因为文件损坏,即使使用以下代码,我也无法退出 ApplicationClass:

我无法搜索winword.exe进程并杀死它,因为我会有几个,我不知道要杀死哪个。如果我可以为每个 ApplicationClass 获得一个 PID,我就可以杀死正确的 winword.exe 进程,这让我很难退出。

0 投票
1 回答
351 浏览

c# - 有没有办法从使用 C# 阻塞文件的进程中获取 PID?

有没有办法从使用 C# 阻塞文件的进程中获取 PID?

0 投票
1 回答
2792 浏览

c++ - Windows上套接字号的PID?

我需要计算各种应用程序从网络发送和接收的字节数。一开始我考虑使用 LSP,但是有很多应用程序根本不使用 LSP(例如 SMB)。这就是我写一个小嗅探器的原因。此应用程序在 IP 级别上工作,并使用 recvfrom 收集数据。

所以我有远程主机、本地和远程端口的地址。这很酷,但我还需要本地套接字所有者的 PID。那么,有没有简单的方法来获得这样的PID呢?解决方法是使用 GetTcpTable、GetUdpTable 或 AllocateAndGetUdpExTableFromStack 和 AllocateAndGetTcpExTableFromStack(这些函数在 2k、XP、XP SP2 和 Vista 之间存在很多差异)并查找结果表,但它似乎不优雅且效率低下......

那么有没有一种“GetPIDOfSocket”函数呢?解决方案应仅是 WinAPI(无 .net),因为可以使用各种语言,例如 C++、Delphi。