| 
					
				 | 
			
			
				@@ -90,18 +90,12 @@ async function run(param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //系统不同 做不同的路径处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const platform = process.platform; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let exeName = newAppName;           //可执行程序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // let configName = "config.toml";        //配置文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let configName = "config.json";        //配置文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let appPath = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //相对路径存放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         appPath = config.filePath + "/" + app.id + "/" + strategyName + "/" + programName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //1. 检查目录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         file.checkPathSync(appPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // if (platform === 'win32') {//直接运行相对路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     appPath = config.winPath + "/" + app.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // } else {//打包为docker 镜像 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     appPath = config.linuxPath + "/" + app.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /**** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          *** 第三步:rust 启动程序检查(下载更新) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -289,7 +283,6 @@ function delay(ms) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 async function closeApp(param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return new Promise((resolve, reject) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var key = param.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var app = getApp(key) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         logger.info(` 信号:  `, app.threadStatus); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -345,27 +338,37 @@ async function closeAppAll() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var appMap = getAppMap() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log(appMap.size); // 输出Map的大小 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        appMap.forEach((value, key) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            console.log(key, value); // 输出Map的键值对 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // logger.info("???", key, value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var app = value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            logger.info(` 信号:  `, app.threadStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            /*******新的删除方式*************/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //文件授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (app.childProcess !== undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var pid = app.childProcess.pid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                exec(`sudo kill ${pid}`, (error, stdout, stderr) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        logger.error(`进程${pid} 杀死失败: ${error}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    logger.info(`进程${pid} 杀死成功`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // logger.info(`当前app:`, app); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    app.threadStatus = RobotStatus.STOP_PENDING 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    robotStatus(app) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // appMap.forEach((value, key) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     console.log(key, value); // 输出Map的键值对 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     // logger.info("???", key, value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     var app = value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     logger.info(` 信号:  `, app.threadStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     /*******新的删除方式*************/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     //文件授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     if (app.childProcess !== undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //         var pid = app.childProcess.pid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //         exec(`sudo kill ${pid}`, (error, stdout, stderr) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //             if (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //                 logger.error(`进程${pid} 杀死失败: ${error}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //             logger.info(`进程${pid} 杀死成功`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //             // logger.info(`当前app:`, app); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //             app.threadStatus = RobotStatus.STOP_PENDING 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //             robotStatus(app) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        exec(`sudo kill $(pgrep -f "^\.\/rust\/.*\/4l_as_")`, (error, stdout, stderr) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                logger.error(`进程${pid} 杀死失败: ${error}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logger.info(`进程${pid} 杀死成功`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // logger.info(`当前app:`, app); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            app.threadStatus = RobotStatus.STOP_PENDING 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            robotStatus(app) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         while (true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var z = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             await delay(1000) 
			 |