使用 Python 中的 PR_SET_NAME

Using PR_SET_NAME from Python

我已经使用以下代码一段时间了:

import ctypes
me = ctypes.CDLL(None)
me.prctl(15, "meow", 0, 0, 0)

在 RHEL6 上使用 Python-2.6 这可行,将进程名称更改为“meow”。

然而,在 RHEL7 上使用 Python-3.7,经过相同的代码后,进程名称变为“m”——只是字符串的第一个字母。

怎么回事?

ctypes prctl 可能需要 8 位字符串,在 Python 3 中,您现在正在传递 Unicode。试试 me.prctl(15, b"meow", 0, 0, 0).