【问题标题】:How to list linux running process from C#.net client?如何从 C#.net 客户端列出 linux 运行进程?
【发布时间】:2026-02-03 17:20:10
【问题描述】:

我想从我的 C#.net 客户端读取 linux 服务器中所有正在运行的进程? 你能告诉我实现这一目标的方法或可能性吗?

我们在同一个域中。我想没有防火墙问题,但我无法在服务器上编写或安装任何东西。

(我正在尝试获取在 linux 机器上运行的进程 ID,并且当该进程更改进程 ID 时......我必须在我的客户端应用程序中运行一些逻辑)

【问题讨论】:

  • 缺少从客户端程序通过 rsh 或 ssh 运行 ps,我不确定是否会有更好或可能的方法来做到这一点。很想知道是否还有其他选择。
  • 也许我遗漏了一些东西,但是 linux 进程真的可以改变他们的 ID 吗?
  • @Joe:你为什么认为需要另一种选择?通过 ssh 调用 ps 肯定是最便携的。如果已经安装了正确的 snmp 代理,则可能会获得一个作为 snmp 表的进程列表,但这不适用于大多数发行版的开箱即用安装。
  • @Ben Voigt:不是假设,只是好奇。在这种情况下,我会这样做。 @Martinho:同一个进程不能更改它的 ID,但如果进程停止/重新启动(手动或自动),它将有一个新的 PID。

标签: c# .net linux remoting


【解决方案1】:

您需要通过 SSH 执行此操作。对于 C#,我会看一下 SharpSSH。运行 ps -e | grep,你应该可以很容易地解析 ID 号。

据我所知,进程 ID 仅在进程重新启动时才会更改,但我对此无权。

【讨论】: