init ems server code

This commit is contained in:
2024-09-27 15:39:34 +08:00
parent 9d4009aaca
commit 9930e4e58f
1551 changed files with 110216 additions and 102864 deletions

View 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;
}
}
}