守护进程日志探寻

原创 2015年07月10日 10:44:04

1.首先要更改配置文件,Ubuntu下不存在/etc/syslog.conf,经过一番折腾,找到了rsyslog.conf,进而发现了真正的配置文件/etc/syslog.d/50-default.conf

  修改配置文件如下,含义为openlog时,参数为LOG_MAIL的直接发送到UDP的514端口,参数为LOG_USER的即存到本地,也发送到UDP,修改好后重启

 服务,service rsyslog restart。

2. 测试代码

客户端发送日志

#include <stdio.h>
#include <syslog.h>
#include <sys/param.h>
#include <stdlib.h>
void init_daemon(void)
{
    int pid;
    int i;
    if(pid=fork())
        exit(0);        
    else if(pid< 0)
        exit(1);        
    setsid();               
    if(pid=fork())
        exit(0);        
    else if(pid< 0)
        exit(1);           
    for(i=0;i< NOFILE;++i)  
        close(i);
    chdir("/home");      
    umask(0);           
}
int main(int argc,char* argv[])
{
	init_daemon();
openlog(argv[0],LOG_CONS | LOG_PID, LOG_USER);
int count=0;
while(count<5){
syslog(LOG_DEBUG,"%d, log info test...",count);
printf("haha\n");
count++;
}
closelog();
return 0;
}

服务端接受日志

#include <sys/types.h>
#include <sys/socket.h>
#include<pthread.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    if (argc != 2)
    {
        printf("Usage: %s port\n", argv[0]);
        exit(1);
    }
    printf("Welcome! This is a UDP server, I can only received message from client and reply with same message\n");
   
    struct sockaddr_in addr;
    addr.sin_family = AF_INET;
    addr.sin_port = htons(atoi(argv[1]));
    addr.sin_addr.s_addr = htonl(INADDR_ANY);

    int sock;
    if ( (sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
    {
        perror("socket");
        exit(1);
    }
    if (bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0)
    {
        perror("bind");
        exit(1);
    }
    char buff[512];
    struct sockaddr_in clientAddr;
    int n;
    int len = sizeof(clientAddr);
    while (1)
    {
        n = recvfrom(sock, buff, 511, 0, (struct sockaddr*)&clientAddr, &len);
        if (n>0)
        {
            buff[n] = 0;
            printf("%s %u says: %s\n", inet_ntoa(clientAddr.sin_addr), ntohs(clientAddr.sin_port), buff);
            n = sendto(sock, buff, n, 0, (struct sockaddr *)&clientAddr, sizeof(clientAddr));
            if (n < 0)
            {
                perror("sendto");
                break;
            }
        }
        else
        {
            perror("recv");
            break;
        }
    }
    return 0;
}

3.测试



版权声明:本文为博主原创文章,未经博主允许不得转载。

Redis使用守护进程启动sentinel并指定其日志目录

正常redis-server可以通过配置文件来指定守护进程启动以及指定日志路径,但sentinel就不一样了。 正常启动redis的sentinel时,进程会直接在前台跑,一退出sentinel进程...
  • xuxile
  • xuxile
  • 2016年08月16日 09:11
  • 6696

GNU Linux syslog守护进程简介及syslog日志写入例子

rsyslog进程 syslog是记录系统中的日志记录的一个工具,可以支持本地的、也可以支持远程的日志的写入。 在LinuxMint环境中,基于upstart的机制的后台守护程序是放在/etc/ini...
  • yygydjkthh
  • yygydjkthh
  • 2014年12月16日 19:09
  • 2053

Linux使用日志系统调试守护进程

守护进程脱离终端控制,在调试时候造成一定不便。可以用syslog服务把程序出错信息输入日志文件中。从而可以看出问题所在。   把上次的程序用日志方式改写。   主要用到三个函数:syslog,op...
  • tycoon1988
  • tycoon1988
  • 2014年09月05日 18:08
  • 352

Linux守护进程log——syslog

一、syslog定义       Syslog常被称为系统日志或系统记录,是一种用来在互联网协议(TCP/IP)的网络中传递记录档讯息的标准。在网络管理领域,Syslog协议提供了一个传递方式...
  • eleanoryss
  • eleanoryss
  • 2015年09月24日 10:12
  • 297

守护进程的日志实现

1. syslogd守护进程用于解决守护进程的日志记录问题,而日志信息保存的位置和记录的信息级别是在syslogd守护进程的配置文件中设定的。 2. 守护进程日志的实现主要有以下三个函数:void o...
  • Veini
  • Veini
  • 2009年12月10日 13:53
  • 1421

在守护进程中实现临时输出一些调试信息到指定的文件

#include stdio.h> #include string.h> #include stdlib.h> #include fcntl.h> #include signal.h> #i...
  • BoArmy
  • BoArmy
  • 2013年03月09日 08:44
  • 997

后台进程不等于守护进程

后台进程不等于守护进程 之前一直在模糊化这两个概念,其实两者不等于。 为什么?最重要的区别,也是最直观的区别,守护进程没有控制终端,而后台进程还有。 通过...
  • jfkidear
  • jfkidear
  • 2012年08月10日 21:35
  • 787

杨澜访谈录之探寻人工智能1(机器的逆袭)

该集捋顺了人工智能的发展过程--机器的逆袭: 1)二战期间:图灵 为了破译 德军的密文的恩尼格码  制作出密码破译计;---计算机之父、人工智能之父 2)1997年,IBM,深蓝,战胜人类顶尖象棋...
  • wonengguwozai
  • wonengguwozai
  • 2017年07月23日 19:26
  • 257

Linux Daemon(守护进程)

Linux 守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,...
  • bravezhe
  • bravezhe
  • 2012年09月19日 13:29
  • 12299

windows下bat批处理实现守护进程(有日志)

开发部的一个核心程序总是会自己宕机,然后需要手工去起,而这个服务的安全级别又很高,只有我可以操作,搞得我晚上老没法睡,昨晚实在受不了了,想起以前在hp-ux下写的shell守护进程,这回搞个windo...
  • zhaixh_89
  • zhaixh_89
  • 2013年12月31日 10:24
  • 660
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:守护进程日志探寻
举报原因:
原因补充:

(最多只允许输入30个字)