Python:使用 setproctitle 更改进程名称

2023-12-28

我有一个 python 脚本,它启动许多 C++ 程序,每个程序都会传递一个命令行参数,如下所示

process_path "~/test/"
process_name "test"
num_process = 10

for p in range(1, num_processes, 1):
    subprocess.Popen([process_path + process_name, str(p)], shell = False)

我们是否可以使用 setproctitle 重命名每个进程,以便我可以将命令行参数作为进程名称的一部分包含在内,如果可以,您会怎么做?


setproctitle 只能更改它的“自己的”进程标题,因为我假设有一个安全元素,但重写进程表的技术是一种古老的 rootkit 技术——所以显然这是可能的。

此外,setproctitle 支持多个操作系统,因此更改进程信息的方法可能会有所不同,但为了解释起见,我假设您在 Linux 下使用它,让我们看看我们有什么。

Linux 使用 prctl(),看起来就像使用 prctl(PR_SET_NAME, "my_new_name");,并且这只适用于调用进程。因此,使用 setproctitle 模块似乎没有一种“简单”的方法来做到这一点——你只能修改自己。

最好的办法是修改 C++ 代码,以便它使用 prctl。

如果您不使用 Linux,请发布您正在使用的内容,因为其他操作系统提供了与 pctl 的限制有很大不同的其他机会和方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:使用 setproctitle 更改进程名称 的相关文章