| 
					
				 | 
			
			
				@@ -338,52 +338,25 @@ 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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // while (true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     var z = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     await delay(1000) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     var str = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     appMap.forEach((value, key) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         str += "机器人:" + key + ",当前状态:" + value.threadStatus + "\t" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         if (value.threadStatus !== RobotStatus.STOPPED) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //             z += 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     logger.info(str) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     if (z === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         logger.info(`策略全部关闭~~开始关闭node`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         logger.info(`等待关闭~~策略!`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        exec(`sudo kill $(pgrep -f "^.*\/4l_as_")`, (error, stdout, stderr) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                logger.error(`全杀-进程${pid} 杀死失败: ${error}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            logger.info(`全杀-进程${pid} 杀死成功`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         while (true) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -391,15 +364,12 @@ async function closeAppAll() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             await delay(1000) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var str = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             appMap.forEach((value, key) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                str = "机器人:" + key + ",当前状态:" + value.threadStatus + "\t" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                logger.info(str) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                str += "机器人:" + key + ",当前状态:" + value.threadStatus + "\t" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (value.threadStatus !== RobotStatus.STOPPED) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     z += 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var app = value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                robotStatus(app) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logger.info(str) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (z === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 logger.info(`策略全部关闭~~开始关闭node`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -408,7 +378,6 @@ async function closeAppAll() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return resolve(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /*******新的删除方式*************/ 
			 |