本文整理汇总了C++中daemon_init函数的典型用法代码示例。如果您正苦于以下问题:C++ daemon_init函数的具体用法?C++ daemon_init怎么用?C++ daemon_init使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了daemon_init函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char *argv[]){
char *service = SERVER_PORT;
if (daemon_init() == -1){
printf("can't fork self\n");
exit(0);
}
if(is_already_running(argv[0]) != 0){
fprintf(stdout, "%s process is already exists.\n", argv[0]);
exit(-1);
}
int servSock = SetupTcpServerSocket(service);
if(servSock < 0){
fprintf(stderr, "SetupTCPServerSocket() failed");
}
for(; ;){
int clntSock = AcceptTcpConnection(servSock);
HandleTcpClient(clntSock);
close(clntSock);
}
}
示例2: action_eapol_success
void
action_eapol_success(const struct eap_header *eap_head,
const struct pcap_pkthdr *packetinfo,
const uint8_t *packet)
{
extern enum STATE state;
extern int background;
extern pthread_t live_keeper_id;
state = ONLINE;
fprintf(stdout, ">>Protocol: EAP_SUCCESS\n");
fprintf(stdout, "&&Info: Authorized Access to Network. \n");
print_server_info (packet, packetinfo->caplen, EAP_SUCCESS);
/* 成为后台守护进程 */
if (background){
background = 0; /* 防止以后误触发 */
daemon_init();
}
/* 获得succes_key */
ruijie_succes_key = ntohl (
ruijie_byte_to_int32 (
(const uint8_t*)(packet + 0x104)));
/* 打开保持线程 */
if ( !live_keeper_id ) {
if ( pthread_create(&live_keeper_id, NULL,
keep_alive, NULL) != 0 ){
fprintf(stderr, "@@Fatal ERROR: "
"Init Life Keeper Thread Failure.\n");
exit (EXIT_FAILURE);
}
}
}
示例3: run_daemon
/**
* Run the daemon.
* @param cfgfile: the config file name.
* @param cmdline_verbose: verbosity resulting from commandline -v.
* These increase verbosity as specified in the config file.
* @param debug_mode: if set, do not daemonize.
* @param log_default_identity: Default identity to report in logs
*/
static void
run_daemon(const char* cfgfile, int cmdline_verbose, int debug_mode, const char* log_default_identity)
{
struct config_file* cfg = NULL;
struct daemon* daemon = NULL;
int done_setup = 0;
if(!(daemon = daemon_init()))
fatal_exit("alloc failure");
while(!daemon->need_to_exit) {
if(done_setup)
verbose(VERB_OPS, "Restart of %s.", PACKAGE_STRING);
else verbose(VERB_OPS, "Start of %s.", PACKAGE_STRING);
/* config stuff */
if(!(cfg = config_create()))
fatal_exit("Could not alloc config defaults");
if(!config_read(cfg, cfgfile, daemon->chroot)) {
if(errno != ENOENT)
fatal_exit("Could not read config file: %s",
cfgfile);
log_warn("Continuing with default config settings");
}
apply_settings(daemon, cfg, cmdline_verbose, debug_mode, log_default_identity);
if(!done_setup)
config_lookup_uid(cfg);
/* prepare */
if(!daemon_open_shared_ports(daemon))
fatal_exit("could not open ports");
if(!done_setup) {
perform_setup(daemon, cfg, debug_mode, &cfgfile);
done_setup = 1;
} else {
/* reopen log after HUP to facilitate log rotation */
if(!cfg->use_syslog)
log_init(cfg->logfile, 0, cfg->chrootdir);
}
/* work */
daemon_fork(daemon);
/* clean up for restart */
verbose(VERB_ALGO, "cleanup.");
daemon_cleanup(daemon);
config_delete(cfg);
}
verbose(VERB_ALGO, "Exit cleanup.");
/* this unlink may not work if the pidfile is located outside
* of the chroot/workdir or we no longer have permissions */
if(daemon->pidfile) {
int fd;
/* truncate pidfile */
fd = open(daemon->pidfile, O_WRONLY | O_TRUNC, 0644);
if(fd != -1)
close(fd);
/* delete pidfile */
unlink(daemon->pidfile);
}
daemon_delete(daemon);
}
示例4: init
void init(char *name, char *pass, int port)
{
signal_setup();
memset(&config, 0, sizeof(config));
// set defaults
config.buffer_start_fill = 220;
config.port = port;
config.password = pass;
config.apname = name;
if (config.daemonise)
{
daemon_init();
}
log_setup();
config.output = audio_get_output(config.output_name);
config.output->init();
uint8_t ap_md5[16];
MD5_CTX ctx;
MD5_Init(&ctx);
MD5_Update(&ctx, config.apname, strlen(config.apname));
MD5_Final(ap_md5, &ctx);
memcpy(config.hw_addr, ap_md5, sizeof(config.hw_addr));
if (config.meta_dir)
metadata_open();
rtsp_listen_loop();
}
示例5: main
int main(int argv, char* argc[])
{
long file_size;
if((file_size=(daemon_init(argc[1],argc[2],argc[3])))==-1)
{
fprintf(stderr, "Error setting up daemon.\r\n\
Please run with <Log_File> <File_To_Watch> {OPTIONAL} <Daemon_Name>\r\n");
示例6: main
//--------------------------------------------------------------------
// Main function
//--------------------------------------------------------------------
int main(int argc, char **argv)
{
daemon_init(argv[0]);
syslog(LOG_USER | LOG_DEBUG, "[%d]Starting ...", getpid());
//typedef void (*sighandler_t) (int);
//sighandler_t signal(int signum, sighandler_t handler);
signal(SIGTERM, signal_handler);
signal(SIGINT, signal_handler);
signal(SIGQUIT, signal_handler);
for (;;)
{
if (global_exit_flag > 0)
{
syslog(LOG_USER | LOG_DEBUG, "It's time to exit, see you later.");
break;
}
// do something here.
sleep(1);
}
closelog();
return 0;
}
示例7: main
int main(int argc,char *argv[])
{
void thread_make(int);
int i,nthreads;
socklen_t addrlen;
if(argc<3||argc>4)
err_quit("usage:server [<host>] <port#> <#threads>");
daemon_init(argv[0],0); /*守护进程化当前进程*/
if(argc==3)
{
listenfd=Tcp_listen(NULL,argv[1],&addrlen);
}
else if(argc==4)
{
listenfd=Tcp_listen(argv[1],argv[2],&addrlen);
}
nthreads=atoi(argv[argc-1]);
tptr=Calloc(nthreads,sizeof(pthread_t));
for(i=0; i<nthreads; i++)
{
thread_make(i);
}
for(;;)
pause();
}
示例8: main
int main(int argc, char *argv[])
{
if(daemon_init(argc, argv) <0) {
return -1;
}
char log_path[256] = {0};
if(!GetIniSectionItem(ulu_c2hd_upgrade_conf, "me", "log_path", log_path)) {
strcat(log_path, "./");
}
log::instance()->init(log_path, "ulu_c2hd_upgrade");
debug_log("log_path = %s\n", log_path);
if(web_interface::instance()->get_server_list(ulu_c2hd_upgrade_conf, type_devmgr_server) <0) {
error_log("get_server_list fail, exit in 2s\n");
sleep(2);
return -1;
}
server * s = base_server::instance();
s->init();
int appid = s->register_app(new upgradeapp, 10000, "upgrade");
s->post_app_msg(appid, ev_init_app);
s->loop();
return 0;
}
示例9: main
int main (int argc, char *argv[])
{
char *groupaddress = "ff18:583:786d:8ec9:d3d6:fd2b:1155:e066";
char *interface = NULL;
openlog("ubavahid",LOG_PID | LOG_PERROR ,LOG_DAEMON);
segfault_init();
if (!g_thread_supported ()) g_thread_init (NULL);
g_type_init();
GMainLoop * mainloop = g_main_loop_new(NULL,FALSE);
if( argc < 2 ){
syslog(LOG_ERR, "Please specify an interface to bind to.");
return 1;
}
interface = argv[1];
if( argc > 2 ){
groupaddress = argv[2];
}
avahi_init(mainloop);
ubavahid_init(interface, groupaddress);
if( argc < 4 ){
daemon_init();
openlog("ubavahid", LOG_PID , LOG_DAEMON);
daemon_close_stderror();
}
g_main_loop_run(mainloop);
return 0;
}
示例10: main
int main(int argc, char **argv) {
int listenfd, connfd;
socklen_t addrlen, len;
struct sockaddr *cliaddr;
char buff[MAXLINE];
time_t ticks;
if (argc < 2 || argc > 3)
err_quit("usage: daytimetcpsrv2 [ <host> ] <service or port#>");
daemon_init(argv[0], 0);
if (argc == 2)
listenfd = Tcp_listen(NULL, argv[1], &addrlen);
else
listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
cliaddr = Malloc(addrlen);
for (;;) {
len = addrlen;
connfd = Accept(listenfd, cliaddr, &len);
err_msg("connection from %s", Sock_ntop(cliaddr, len));
ticks = time(NULL);
snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
Write(connfd, buff, strlen(buff));
Close(connfd);
}
}
示例11: main
int main(int argc, char *argv[])
{
if(daemon_init(argc, argv) <0){
return -1;
}
char log_path[256] = {0};
if(!GetIniSectionItem(ulu_c2hd_upgrade_conf, "me", "log_path", log_path)){
strcat(log_path, "./");
}
debug_log("log_path = %s\n", log_path);
server * s = base_server::instance();
s->init();
log::instance()->init(log_path, "ulu_c2hd_upgrade");
int appid = s->register_app(new upgradeapp, 10000, "upgrade");
s->post_app_msg(appid, ev_init_app);
s->loop();
return 0;
}
示例12: main
int
main(int argc, char **argv)
{
/* network */
int listenfd, connfd;
int servport;
struct sockaddr_in servaddr;
char readline[MAXLINE];
/* data */
struct cmd cmd;
int ndata = 0;
int err,c;
char data[MAXBUFF];
servport = atoi(WPORT);
daemon_init(argv[0], 0);
/* parse commandline */
while ((c = getopt(argc, argv, "p:")) != -1) {
switch(c) {
case 'p':
servport = atoi(optarg);
break;
case '?':
usaged(1,"command line error","");
break;
}
}
listenfd = Socket(AF_INET, SOCK_STREAM, 0);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(servport);
Bind(listenfd, (SA *) &servaddr, sizeof(servaddr));
Listen(listenfd, LISTENQ);
for ( ; ; ) {
connfd = accept(listenfd, (SA *) NULL, NULL);
Read(connfd, readline, MAXLINE);
cmd.command = atoi(readline);
cmd.argcmd = 0;
cmd.netflg = 0;
err = getsrd( data, &ndata, &cmd);
Write(connfd, data, ndata);
Close(connfd);
}
}
示例13: main
int main(int argc, char *argv[])
{
int retVal;
pthread_t threadId;
//check for arguments
if( argc < 2 )
{
fprintf(stderr, "Usage: %s [port]\n", argv[0]);
exit(1);
}
//spawn daemon
daemon_init("hakims_HW7_server", LOG_DAEMON);
weblog = fopen("weblog", "a");
//open socket
sock = socket(AF_INET, SOCK_STREAM, 0);
QAP(sock >= 0, "Error opening socket.\n", NULL);
//nullify server, and initialize
memset( (char*)&server, 0, sizeof(server));
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons( (unsigned short)atoi(argv[1]) );
//bind socket
if( bind(sock, (struct sockaddr*)&server, sizeof(server)) < 0 )
QAP(0, "Error binding socket.\n", NULL);
//listen for incoming connections
if( listen(sock, THREADCOUNT) < 0 ) //backlog set to # of threads
QAP(0, "Error listening to socket.\n", NULL);
//keep accepting connections
while(1)
{
//sleeps until connection to accept is available
connection* con = malloc( sizeof(connection) );
socklen_t fromSize = sizeof(con->from);
//accept sometimes returns a bad FD, but looping until a good one is returned works.
do
{
con->sock = accept(sock, (struct sockaddr*)&(con->from), &fromSize);
}
while(con->sock < 0);
//spawn thread
retVal = pthread_create(&threadId, NULL, &ThreadRoutine, con);
QAP(retVal == 0, "Error in pthread_create.\n", NULL);
}
return 0;
}
示例14: main
int main(int argc,char ** argv)
{
daemon_init();
for (;;)
{
process_commands();
sleep(10);
}
return 0;
}
示例15: main
/*----------------------------------------------------------------
* main
*
* wland entry point.
*
* Arguments:
* argc number of command line arguments
* argv array of argument strings
*
* Returns:
* 0 - success
* ~0 - failure
----------------------------------------------------------------*/
int main(int argc, char *argv[])
{
int errflg;
int optch;
errflg = 0;
/* Set Globals */
msgfp = NULL;
nlfd = -1;
user_process = 0;
while ((optch = getopt(argc, argv, "Vvd:u")) != -1) {
switch (optch) {
case 'V':
case 'v':
fprintf(stderr, "wland version %s\n", WLAN_RELEASE);
return 0;
break;
case 'd':
wland_path = strdup(optarg);
break;
case 'u':
user_process = 1;
break;
default:
errflg = 1; break;
}
}
if (errflg || (optind < argc)) {
usage(argv[0]);
exit(1);
}
if ( chdir(wland_path) < 0 ) {
fprintf(stderr, "wland: ERROR changing to directory %s\n",
wland_path);
exit(1);
}
if ( !user_process ) {
if ( !(daemon_init()) ) {
exit(1);
}
}
if ( !(netlink_init()) ) {
exit(1);
}
process_messages();
return 0;
}