# -*- coding:utf-8 -*- # GET /api/status - 服务状态 import subprocess result = { "service": "media-server", "status": "running", "gpu": [], "redis": False } # GPU状态 try: out = subprocess.check_output( ['nvidia-smi', '--query-gpu=index,utilization.gpu,memory.used,memory.total', '--format=csv,noheader,nounits'], timeout=5 ).decode().strip() for line in out.split('\n'): parts = [p.strip() for p in line.split(',')] result['gpu'].append({ 'id': int(parts[0]), 'util': int(parts[1]), 'mem_used': int(parts[2]), 'mem_total': int(parts[3]) }) except Exception: pass # Redis try: import aioredis r = await aioredis.from_url('redis://127.0.0.1:6379') pong = await r.ping() result['redis'] = pong await r.close() except Exception: pass return json.dumps(result)