Multiprozessnamen unter Linux

Multiprozessnamen unter Linux

Ich verwende PythonsMehrfachverarbeitungPaket, das Arbeitsprozesse bequem selbst benennt. Ich kann diese Namen zu Debugzwecken aus meinem Python-Skript heraus aufrufen. Ich möchte dies jedoch von der Shell aus tun und htop/oder ps -auxnur den Befehl anzeigen, mit dem diese Prozesse aufgerufen wurden, was python test.pyfüralleProzesse. Gibt es eine Möglichkeit, die gleichen Prozessnamen wie unten, aber in Bindestrich zu erhalten?

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()

Dies ergibt

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

Ich weiß, dass Sie zu gehen können, /proc/{your_pid_here}/cmdlinewenn Sie bereits über eine PID zum Arbeiten verfügen, aber ich betrachte Hunderte von Prozessen, sodass eine listenartige Übersicht vorzuziehen ist.

verwandte Informationen