如何按名称获取进程的PID?

如何按名称获取进程的PID?,d,D,我需要根据进程的名称获取进程的PID。我查看了,但似乎只有在使用spawn() 例如,我需要获得已经在工作的FireFox的PID 我正在写一个监控微服务的微型应用程序。一次只能有一个服务工作。进程没有名称,因此无法通过搜索可能表示名称或可能不表示名称的字符串来查找PID。进程所拥有的是was fork()编辑时使用的命令。因此,当您使用ps时看到的“名称”实际上是argv[0],正如Adam所指出的,您可能有数百个进程使用同一命令 可以使用为线程命名。在D set/get中,线程名称是使用。问

我需要根据进程的名称获取进程的PID。我查看了,但似乎只有在使用
spawn()

例如,我需要获得已经在工作的FireFox的PID


我正在写一个监控微服务的微型应用程序。一次只能有一个服务工作。

进程没有名称,因此无法通过搜索可能表示名称或可能不表示名称的字符串来查找PID。进程所拥有的是was fork()编辑时使用的命令。因此,当您使用
ps
时看到的“名称”实际上是argv[0],正如Adam所指出的,您可能有数百个进程使用同一命令

可以使用为线程命名。在D set/get中,线程名称是使用。问题是,在大多数情况下,开发人员不设置线程名称


您可以通过实现readproc()之类的方法获取正在运行的进程的列表,然后对需要PID的进程进行搜索,但这不能保证有效。

进程没有名称,因此无法通过搜索可能表示名称或可能不表示名称的字符串来查找PID。进程所拥有的是was fork()编辑时使用的命令。因此,当您使用
ps
时看到的“名称”实际上是argv[0],正如Adam所指出的,您可能有数百个进程使用同一命令

可以使用为线程命名。在D set/get中,线程名称是使用。问题是,在大多数情况下,开发人员不设置线程名称


您可以通过实现readproc()之类的东西来获取正在运行的进程列表,然后对需要PID的进程进行sarching,但这并不能保证有效。

您可以使用与C中相同的方法来执行此操作。并且可能会有许多同名的PID(即使用户认为一个程序可以有多个PID)。你打算用它做什么?你用与C语言相同的方法来做。可能会有许多同名的PID(甚至用户认为一个程序可以有几个PID)。你打算用它做什么?你所说的不完全正确,至少对Windows来说是这样。请参阅以下内容:将其移植到D应该相当容易对于Linux等。idk,如果有任何等价物。你所说的不完全正确,至少对于Windows。请参阅以下内容:将其移植到D应该相当容易对于Linux等。idk,如果有任何等效的。