Index: /branches/rel_ag_9_4_5/aaa/aaa_cli.c
===================================================================
--- /branches/rel_ag_9_4_5/aaa/aaa_cli.c	(revision 20314)
+++ /branches/rel_ag_9_4_5/aaa/aaa_cli.c	(working copy)
@@ -1666,7 +1666,6 @@
     return;
 }
 
-
 /*
  * This function show the radius server group name
  *
Index: /branches/rel_ag_9_4_5/procmon/procmon.c
===================================================================
--- /branches/rel_ag_9_4_5/procmon/procmon.c	(revision 20314)
+++ /branches/rel_ag_9_4_5/procmon/procmon.c	(working copy)
@@ -70,7 +70,7 @@
 	{"/ca/bin/conditiond", 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
 //	{"/ca/bin/art_server -D -f /ca/bin/art_server.conf", 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
 	{"/ca/bin/provider_server_pthread", 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
-	{"/ca/bin/radiusd -f -d /ca/conf/raddb", 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
+//	{"/ca/bin/radiusd -f -d /ca/conf/raddb", 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
 	{"/ca/bin/ipbird", 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
 //	{"/bin/python /ca/localdb/utils/hwid_sync.py > /var/crash/localdb/hwid_sync_err.log 2>&1", 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
 #ifndef CM
Index: /branches/rel_ag_9_4_5/ui/backend/sys_cmd.c
===================================================================
--- /branches/rel_ag_9_4_5/ui/backend/sys_cmd.c	(revision 20314)
+++ /branches/rel_ag_9_4_5/ui/backend/sys_cmd.c	(working copy)
@@ -4973,3 +4973,59 @@
     }
     return 0;
 }
+
+int get_radius_pid() 
+{
+	FILE* fp;
+	char command[256];
+	char buf[256];
+	int pid = 0;
+
+	sprintf(command, "/bin/ps awux | /usr/bin/grep -v grep | /usr/bin/grep '/ca/bin/radiusd -f -d /ca/conf/raddb' | /usr/bin/awk '{print $2}'");
+	if((fp = popen(command,"r")) == NULL) {
+		printf("error.\n");
+		return 0;
+	}
+
+	if( (fgets(buf,256,fp))!= NULL ) {
+		pid = atoi(buf);
+	}
+
+	pclose(fp);
+
+	return pid;
+}
+
+int radius_on() 
+{
+	int pid;
+
+	pid = get_radius_pid();
+	if (pid == 0) {
+		system("/ca/bin/radiusd -f -d /ca/conf/raddb &");
+		sleep(1);
+		pid = get_radius_pid();
+		if (pid == 0) {
+			printf("Radius start failed.\n");
+			return 0;
+		}
+	}
+
+	printf("Radius is ON.\n");
+
+	return 0;
+}
+
+int radius_off() 
+{
+	int pid;
+	char cmd[256];
+
+	pid = get_radius_pid();
+	if (pid > 0) {
+		snprintf(cmd, 256, "killall radiusd");
+		system(cmd);
+	}
+
+	return 0;
+}
Index: /branches/rel_ag_9_4_5/ui/generator/commands.pm
===================================================================
--- /branches/rel_ag_9_4_5/ui/generator/commands.pm	(revision 20314)
+++ /branches/rel_ag_9_4_5/ui/generator/commands.pm	(working copy)
@@ -12588,6 +12588,38 @@
 	},
 	{
 		obj_type => "MENU",
+		name => "radius",
+		module => "system",
+		parent_menu => ".",
+		uniq_name => "root_radius",
+		cmd_attribute => "CMD_ARRAYOS|CMD_SPROXY|CMD_NORMAL",
+		user_level => "CLI_LEVEL_CONFIG",
+		help_string => "Modify Radius settings",
+	},
+	{
+		obj_type => "ITEM",
+		name => "on",
+		menu => "root_radius",
+		module => "system",
+		help_string => "Enable radius server",
+		cmd_attribute => "CMD_ARRAYOS|CMD_SPROXY|CMD_NORMAL|CMD_GLOBAL",
+		user_level => "CLI_LEVEL_CONFIG",
+		function_name => "radius_on",
+		function_args => [],
+	},
+	{
+		obj_type => "ITEM",
+		name => "off",
+		menu => "root_radius",
+		module => "system",
+		help_string => "Disable radius server",
+		cmd_attribute => "CMD_ARRAYOS|CMD_SPROXY|CMD_NORMAL|CMD_GLOBAL",
+		user_level => "CLI_LEVEL_CONFIG",
+		function_name => "radius_off",
+		function_args => [],
+	},
+	{
+		obj_type => "MENU",
 		name => "webui",
 		module => "system",
 		parent_menu => ".",
