执行进程管理任务
(self)
| 339 | self.ide_name = get_ide_display_name(ide_type) |
| 340 | |
| 341 | def run(self): |
| 342 | """执行进程管理任务""" |
| 343 | try: |
| 344 | from augment_tools_core.process_manager import ProcessManager |
| 345 | |
| 346 | pm = ProcessManager() |
| 347 | |
| 348 | if self.action == "check": |
| 349 | self.emit_progress(f"检查 {self.ide_name} 进程...") |
| 350 | processes = pm.get_ide_processes(self.ide_type) |
| 351 | |
| 352 | if processes: |
| 353 | self.emit_progress(f"找到 {len(processes)} 个 {self.ide_name} 进程:") |
| 354 | for proc in processes: |
| 355 | self.emit_progress(f" {proc}") |
| 356 | self.emit_status(f"找到 {len(processes)} 个进程", "info") |
| 357 | else: |
| 358 | self.emit_progress(f"未找到 {self.ide_name} 进程") |
| 359 | self.emit_status("未找到进程", "info") |
| 360 | |
| 361 | self.task_completed.emit(True) |
| 362 | |
| 363 | elif self.action == "kill": |
| 364 | self.emit_progress(f"终止 {self.ide_name} 进程...") |
| 365 | |
| 366 | import asyncio |
| 367 | |
| 368 | async def kill_processes(): |
| 369 | return await pm.kill_ide_processes(self.ide_type, force=True) |
| 370 | |
| 371 | # 在新的事件循环中运行 |
| 372 | try: |
| 373 | loop = asyncio.get_event_loop() |
| 374 | except RuntimeError: |
| 375 | loop = asyncio.new_event_loop() |
| 376 | asyncio.set_event_loop(loop) |
| 377 | |
| 378 | success = loop.run_until_complete(kill_processes()) |
| 379 | |
| 380 | if success: |
| 381 | self.emit_progress("所有进程已成功终止") |
| 382 | self.emit_status("进程终止完成", "success") |
| 383 | self.task_completed.emit(True) |
| 384 | else: |
| 385 | self.emit_progress("部分进程可能无法终止") |
| 386 | self.emit_status("进程终止部分失败", "warning") |
| 387 | self.task_completed.emit(False) |
| 388 | |
| 389 | except Exception as e: |
| 390 | self.emit_progress(f"进程管理时发生错误: {str(e)}") |
| 391 | self.emit_status(f"操作失败: {str(e)}", "error") |
| 392 | self.task_completed.emit(False) |
| 393 | |
| 394 | |
| 395 | # 导出所有工作线程 |
nothing calls this directly
no test coverage detected