![Multiprozessnamen unter Linux](https://rvso.com/image/1672332/Multiprozessnamen%20unter%20Linux.png)
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 -aux
nur den Befehl anzeigen, mit dem diese Prozesse aufgerufen wurden, was python test.py
fü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}/cmdline
wenn Sie bereits über eine PID zum Arbeiten verfügen, aber ich betrachte Hunderte von Prozessen, sodass eine listenartige Übersicht vorzuziehen ist.