当前位置:网站首页>系统 日志

系统 日志

2022-06-12 19:35:00 Lee Neo

/var/log

syslogd服务

系统日志实例: 

tail -f /tmp/out        //查看输出;

ps -axj                //查看运行

tail -f /var/log/syslog        //查看日志

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include <syslog.h>
#include<errno.h>


#define FNAME "/tmp/out"


static int daemonize(void)
{
    int fd;
    pid_t pid;
    pid = fork();
    if(pid <0)
    {
        exit(1);
    }
    if(pid >0)
        exit(0);

    fd = open("/dev/null", O_RDWR);
    if(fd < 0)
    {
        return -1;
    }
    // 标准流重定向到“黑洞”,即在终端不显示
    dup2(fd, 0);
    dup2(fd, 1);
    dup2(fd, 2);
    if(fd > 2)
        close(fd);

    setsid();
    chdir("/");
    // umask(0);

    return 0;
}

int main()
{
    FILE *fp;

    openlog("mydaemon", LOG_PID, LOG_DAEMON);


    if(daemonize())
    {
        syslog(LOG_ERR, "daemonize() failed!");
    }
    else
    {
        syslog(LOG_INFO, "daemonize() successded!");
    }
    

    fp = fopen(FNAME, "w");
    if(fp == NULL)
    {
        syslog(LOG_ERR, "fopen():%s", strerror(errno));
        exit(1);
    }

    syslog(LOG_INFO, "%s was opened.", FNAME);

    for(int i = 0; ; i++ )
    {
        fprintf(fp, "%d\n", i);
        fflush(fp);
        syslog(LOG_DEBUG, "%d is printed.", i);
        sleep(1);
    }

    fclose(fp);
    closelog();


    exit(0);
}
原网站

版权声明
本文为[Lee Neo]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_46432495/article/details/125242686