summaryrefslogtreecommitdiffstats
path: root/src/zabbix_agent
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-12-15 09:11:06 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-12-15 09:11:06 +0000
commit2b2a59d510dcde8b06b9d6f98cea0c0917de96cc (patch)
tree681ab3aee796ea2994d807f432c45b6fda290a4f /src/zabbix_agent
parent2b0a2c57ce5d2aae2e87fb0578618a4178f8b4f3 (diff)
downloadzabbix-2b2a59d510dcde8b06b9d6f98cea0c0917de96cc.tar.gz
zabbix-2b2a59d510dcde8b06b9d6f98cea0c0917de96cc.tar.xz
zabbix-2b2a59d510dcde8b06b9d6f98cea0c0917de96cc.zip
- fixed system.swap.size (Eugene)
- fixed vm.memory.size (Eugene) - fixed configuration file parsing for user specifed functions (Eugene) git-svn-id: svn://svn.zabbix.com/trunk@2414 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/zabbix_agent')
-rw-r--r--src/zabbix_agent/stats.c3
-rw-r--r--src/zabbix_agent/zabbix_agentd.c68
2 files changed, 45 insertions, 26 deletions
diff --git a/src/zabbix_agent/stats.c b/src/zabbix_agent/stats.c
index 061cd343..a0b70689 100644
--- a/src/zabbix_agent/stats.c
+++ b/src/zabbix_agent/stats.c
@@ -73,7 +73,8 @@ void collect_statistics()
file=fopen("/tmp/zabbix_agentd.tmp2","w");
if(NULL == file)
{
- fprintf(stderr, "Cannot open file [%s] [%s]\n","/tmp/zabbix_agentd.tmp2", strerror(errno));
+ zabbix_log( LOG_LEVEL_CRIT, "Cannot open file [%s] [%s]\n","/tmp/zabbix_agentd.tmp2", strerror(errno));
+ exit(1);
}
else
{
diff --git a/src/zabbix_agent/zabbix_agentd.c b/src/zabbix_agent/zabbix_agentd.c
index 59d255de..23260e30 100644
--- a/src/zabbix_agent/zabbix_agentd.c
+++ b/src/zabbix_agent/zabbix_agentd.c
@@ -229,14 +229,6 @@ void usage(char *prog)
exit(-1);
}
-void print_supported()
-{
- init_metrics();
- init_config();
- test_parameters();
- exit(-1);
-}
-
void init_config(void)
{
struct cfg_line cfg[]=
@@ -257,7 +249,6 @@ void init_config(void)
{"DebugLevel",&CONFIG_LOG_LEVEL,0,TYPE_INT,PARM_OPT,0,4},
{"StartAgents",&CONFIG_AGENTD_FORKS,0,TYPE_INT,PARM_OPT,1,16},
{"RefreshActiveChecks",&CONFIG_REFRESH_ACTIVE_CHECKS,0,TYPE_INT,PARM_OPT,60,3600},
- {"UserParameter",0,&add_parameter,0,0,0,0},
{0}
};
AGENT_RESULT result;
@@ -278,14 +269,14 @@ void init_config(void)
if(CONFIG_HOSTNAME == NULL)
{
- if(SUCCEED == process("system[hostname]", 0, &result))
+ if(SUCCEED == process("system.hostname", 0, &result))
{
if(result.type & AR_STRING)
{
CONFIG_HOSTNAME=strdup(result.str);
}
- free_result(&result);
}
+ free_result(&result);
if(CONFIG_HOSTNAME == NULL)
{
@@ -300,6 +291,19 @@ void init_config(void)
}*/
}
+void load_user_parameters(void)
+{
+ struct cfg_line cfg[]=
+ {
+/* PARAMETER ,VAR ,FUNC, TYPE(0i,1s),MANDATORY,MIN,MAX
+*/
+ {"UserParameter",0,&add_parameter,0,0,0,0},
+ {0}
+ };
+
+ parse_cfg_file(CONFIG_FILE,cfg);
+}
+
void process_child(int sockfd)
{
ssize_t nread;
@@ -459,6 +463,10 @@ pid_t child_passive_make(int i,int listenfd, int addrlen)
return 0;
}
+#define ZBX_START_DAEMON 0
+#define ZBX_USAGE 1
+#define ZBX_SUPPORTED 2
+
int main(int argc, char **argv)
{
int listenfd;
@@ -468,29 +476,49 @@ int main(int argc, char **argv)
char host[128];
int ch;
char *s;
+ int task = ZBX_START_DAEMON;
static struct sigaction phan;
/* Parse the command-line. */
- while ((ch = getopt(argc, argv, "c:h:p")) != EOF)
+ while ((ch = getopt(argc, argv, "c:hp")) != EOF)
switch ((char) ch) {
case 'c':
CONFIG_FILE = optarg;
break;
case 'h':
- usage(argv[0]);
+ task = ZBX_USAGE;
break;
case 'p':
- print_supported();
+ task = ZBX_SUPPORTED;
break;
default:
- usage(argv[0]);
+ task = ZBX_USAGE;
break;
}
/* Must be before init_config() */
init_metrics();
init_config();
+
+ if(CONFIG_LOG_FILE == NULL)
+ zabbix_open_log(LOG_TYPE_SYSLOG,CONFIG_LOG_LEVEL,NULL);
+ else
+ zabbix_open_log(LOG_TYPE_FILE,CONFIG_LOG_LEVEL,CONFIG_LOG_FILE);
+
+ load_user_parameters();
+
+ switch(task)
+ {
+ case ZBX_SUPPORTED:
+ test_parameters();
+ exit(-1);
+ break;
+ case ZBX_USAGE:
+ usage(argv[0]);
+ break;
+ }
+
daemon_init();
phan.sa_handler = &signal_handler;
@@ -501,16 +529,6 @@ int main(int argc, char **argv)
sigaction(SIGTERM, &phan, NULL);
sigaction(SIGPIPE, &phan, NULL);
-
- if(CONFIG_LOG_FILE == NULL)
- {
- zabbix_open_log(LOG_TYPE_SYSLOG,CONFIG_LOG_LEVEL,NULL);
- }
- else
- {
- zabbix_open_log(LOG_TYPE_FILE,CONFIG_LOG_LEVEL,CONFIG_LOG_FILE);
- }
-
if( FAIL == create_pid_file(CONFIG_PID_FILE))
{
return -1;