Linux 上的多進程名稱

Linux 上的多進程名稱

我正在使用Python的多重處理包可以方便地自行命名工作進程。我可以從 Python 腳本中存取這些名稱以進行偵錯。但是,我想從 shell 執行此操作,htop或者ps -aux僅顯示調用這些進程的命令,該命令python test.py用於全部流程。有沒有辦法獲得與下面相同的進程名稱,但用破折號表示?

import multiprocessing as mp
import time

class MyWorker:
    def __init__(self, x):
        self.x = x

    def square(self):
        time.sleep(30)
        return self.x**2

pool = mp.Pool(4)
nums = [i for i in range(10)]
workers = [MyWorker(x) for x in nums]
tasks = []

for worker in workers:
    pending = pool.apply_async(worker.square)
    tasks.append(pending)
[print(proc.name) for proc in mp.active_children()]
results = [result.get() for result in tasks]
pool.close()
pool.join()

這產生

ForkPoolWorker-3
ForkPoolWorker-2
ForkPoolWorker-4
ForkPoolWorker-1

我知道如果您已經有一個 pid 可以使用,您可以訪問/proc/{your_pid_here}/cmdline,但我正在查看數百個進程,因此首選類似概述的列表。

相關內容