Python线程名称不会显示在ps或htop上

当我为Python线程设置名称时,它不会显示在htop或ps上. ps输出仅显示python作为线程名称.有没有办法设置一个线程名称,以便它显示在像他们这样的系统报告上?

from threading import Thread
import time


def sleeper():
    while True:
        time.sleep(10)
        print "sleeping"

t = Thread(target=sleeper, name="Sleeper01")
t.start()
t.join()

ps -T -p {PID}输出

  PID  SPID TTY          TIME CMD
31420 31420 pts/30   00:00:00 python
31420 31421 pts/30   00:00:00 python

解决方法:

首先安装prctl module.(在debian / ubuntu上输入sudo apt-get install python-prctl)

from threading import Thread
import time
import prctl

def sleeper():
    prctl.set_name("sleeping tiger")
    while True:
        time.sleep(10)
        print "sleeping"

t = Thread(target=sleeper, name="Sleeper01")
t.start()
t.join()

这打印

$ps -T
  PID  SPID TTY          TIME CMD
22684 22684 pts/29   00:00:00 bash
23302 23302 pts/29   00:00:00 python
23302 23303 pts/29   00:00:00 sleeping tiger
23304 23304 pts/29   00:00:00 ps
上一篇:Linux怎样查询出当前系统的所有进程


下一篇:linux – htop – 更改内存使用显示单位