init ems server code
This commit is contained in:
184
src/performanceMgr/c_program/cstaCollector/cstamain.c
Normal file
184
src/performanceMgr/c_program/cstaCollector/cstamain.c
Normal file
@@ -0,0 +1,184 @@
|
||||
/*************************************************
|
||||
File name: cstamain.c
|
||||
Author: JianHui Zheng
|
||||
Version: 9:00:00
|
||||
Date: 2007-7-2
|
||||
Description:cstaCollectorģ<72><C4A3><EFBFBD><EFBFBD>main<69>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ʹģ<CAB9><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
|
||||
void iptrans_init();
|
||||
void snmp_init(int port);
|
||||
<09><><EFBFBD><EFBFBD>csta.c<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
void csta_init();
|
||||
|
||||
History:
|
||||
No.
|
||||
Author
|
||||
Date
|
||||
Version
|
||||
Description
|
||||
*************************************************/
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#include "csta.h"
|
||||
|
||||
static struct itimerval itimer, old_itimer;
|
||||
|
||||
void onCstaCollectorTimer();
|
||||
void setCstaCollectorTimer();
|
||||
void setup_daemon(void);
|
||||
int timerCounter = 0;
|
||||
|
||||
/*************************************************
|
||||
Function: // main
|
||||
Description: // main<69><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹģ<CAB9><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Calls: // iptrans_init; snmp_init; csta_init; setCstaCollectorTimer;
|
||||
Called By: // csta.c:csta_init;
|
||||
Table Accessed: //
|
||||
Table Updated: //
|
||||
Input: // int argc, char *argv[]
|
||||
Output: //
|
||||
Return: //
|
||||
Others: //
|
||||
*************************************************/
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
char runMode;
|
||||
|
||||
runMode = getopt(argc, argv, "d");
|
||||
|
||||
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>в<EFBFBD><D0B2><EFBFBD>
|
||||
switch (runMode)
|
||||
{
|
||||
case 'd':
|
||||
setup_daemon();
|
||||
break;
|
||||
case '?':
|
||||
break;
|
||||
}
|
||||
|
||||
//IPƽ̨ģ<CCA8><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
fprintf(stderr, "\n Calling iptrans_init() \n");
|
||||
iptrans_init();
|
||||
|
||||
//snmpģ<70><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
fprintf(stderr, "\n Calling snmp_init() \n");
|
||||
snmp_init(4957);
|
||||
|
||||
//cstaCollectorģ<72><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
fprintf(stderr, "\n Calling csta_init() \n");
|
||||
csta_init();
|
||||
|
||||
//<2F>趨<EFBFBD><E8B6A8>ʱ<EFBFBD><CAB1>
|
||||
setCstaCollectorTimer();
|
||||
while (1) {
|
||||
usleep(50);
|
||||
}
|
||||
|
||||
return (1);
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: // onCstaCollectorTimer
|
||||
Description: // <20>趨<EFBFBD><E8B6A8>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Calls: // csta_timer;
|
||||
Called By: // setCstaCollectorTimer;
|
||||
Table Accessed: //
|
||||
Table Updated: //
|
||||
Input: // int argc; char *argv[];
|
||||
Output: //
|
||||
Return: //
|
||||
Others: //
|
||||
*************************************************/
|
||||
void onCstaCollectorTimer()
|
||||
{
|
||||
csta_timer();
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: // setCstaCollectorTimer
|
||||
Description: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Calls: // setitimer;
|
||||
Called By: // main;
|
||||
Table Accessed: //
|
||||
Table Updated: //
|
||||
Input: //
|
||||
Output: //
|
||||
Return: //
|
||||
Others: //
|
||||
*************************************************/
|
||||
void setCstaCollectorTimer()
|
||||
{
|
||||
struct sigaction act;
|
||||
act.sa_handler = onCstaCollectorTimer;
|
||||
sigemptyset(&act.sa_mask);
|
||||
act.sa_flags = 0;
|
||||
if (sigaction(SIGALRM, &act, NULL) < 0) {
|
||||
perror("Produce Sigaction");
|
||||
exitLog("cstaCollector:setCstaCollectorTimer, sigaction function error");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
itimer.it_interval.tv_sec = 0;
|
||||
itimer.it_interval.tv_usec = 10 * 1000;
|
||||
itimer.it_value.tv_sec = 0;
|
||||
itimer.it_value.tv_usec = 10 * 1000;
|
||||
|
||||
if (setitimer(ITIMER_REAL, &itimer, &old_itimer) != 0) {
|
||||
printf("Setting Timer error! \n");
|
||||
exitLog("cstaCollector:setCstaCollectorTimer, setitimer function error");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: // setup_daemon
|
||||
Description: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
|
||||
Calls: // fork;
|
||||
Called By: // main;
|
||||
Table Accessed: //
|
||||
Table Updated: //
|
||||
Input: //
|
||||
Output: //
|
||||
Return: //
|
||||
Others: //
|
||||
*************************************************/
|
||||
void setup_daemon(void)
|
||||
{
|
||||
|
||||
//<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>
|
||||
switch (fork())
|
||||
{
|
||||
case -1:
|
||||
{
|
||||
perror("setup_daemon(), 1st fork()");
|
||||
exit(2);
|
||||
}
|
||||
default:
|
||||
exit(0);
|
||||
case 0:
|
||||
if (setsid() == -1)
|
||||
{
|
||||
perror("setup_daemon(), setsid()");
|
||||
exit(3);
|
||||
}
|
||||
switch (fork())
|
||||
{
|
||||
case -1:
|
||||
{
|
||||
perror("setup_daemon(), 2nd fork()");
|
||||
exit(3);
|
||||
}
|
||||
|
||||
default:
|
||||
exit(0);
|
||||
case 0:
|
||||
umask(0);
|
||||
/* and return with daemon set up */
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user