15 lines
1.0 KiB
Python
15 lines
1.0 KiB
Python
import subprocess,json,pathlib
|
|
def run(*a):return subprocess.check_output(a,text=True,stderr=subprocess.STDOUT)
|
|
print(run('nvidia-smi','--query-compute-apps=gpu_uuid,pid,process_name,used_gpu_memory','--format=csv,noheader'))
|
|
for name in run('docker','ps','--format','{{.Names}}').splitlines():
|
|
d=json.loads(run('docker','inspect',name))[0]
|
|
req=d['HostConfig'].get('DeviceRequests')
|
|
if req:
|
|
print(json.dumps({'name':name,'devices':req,'state':d['State']['Status'],'image':d['Config']['Image']},ensure_ascii=False))
|
|
for name in ('comfyui','h3-caption-gpu3-canary-8a5f'):
|
|
d=json.loads(run('docker','inspect',name))[0]
|
|
print(name,'security',{'user':d['Config']['User'],'readOnly':d['HostConfig']['ReadonlyRootfs'],'privileged':d['HostConfig']['Privileged'],'capAdd':d['HostConfig']['CapAdd'],'network':list(d['NetworkSettings']['Networks'])})
|
|
if name.startswith('h3-caption'):
|
|
for m in d['Mounts']:
|
|
if m['Destination']=='/run/h3-control': print('control',json.loads((pathlib.Path(m['Source'])/'control.json').read_text()))
|