gpt4 book ai didi

运行守护进程后找不到守护进程日志

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:39 26 4
gpt4 key购买 nike

这是我的守护进程:

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

using namespace std;

#define DAEMON_NAME "vdaemon"

void process(){

syslog (LOG_NOTICE, "Writing to my Syslog");
}

int main(int argc, char *argv[]) {

//Set our Logging Mask and open the Log
setlogmask(LOG_UPTO(LOG_NOTICE));
openlog(DAEMON_NAME, LOG_CONS | LOG_NDELAY | LOG_PERROR | LOG_PID, LOG_USER);

syslog(LOG_INFO, "Entering Daemon");

pid_t pid, sid;

//Fork the Parent Process
pid = fork();

if (pid < 0) { exit(EXIT_FAILURE); }

//We got a good pid, Close the Parent Process
if (pid > 0) { exit(EXIT_SUCCESS); }

//Change File Mask
umask(0);

//Create a new Signature Id for our child
sid = setsid();
if (sid < 0) { exit(EXIT_FAILURE); }

//Change Directory
//If we cant find the directory we exit with failure.
if ((chdir("/")) < 0) { exit(EXIT_FAILURE); }

//Close Standard File Descriptors
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);

//----------------
//Main Process
//----------------
while(true){
process(); //Run our Process
sleep(2); //Sleep for 2 seconds
}

//Close the log
closelog ();
}

我这样编译,

gcc vdaemon.cpp -o vdaemon

并运行它

./vdaemon 

然后当我得到

shishir@dewsworld:~/daemon$ ps -A | grep --color='auto' "vdaemon"
5060 ? 00:00:00 vdaemon

然后我就没有日志了

shishir@dewsworld:~/daemon$ dmesg | grep --color='auto' "Writing to my Syslog"
shishir@dewsworld:~/daemon$

我需要知道如何获取日志。

最佳答案

我们建议您查看 /var/log/messages 区域以查看 syslog 守护程序将写入的位置。如果您仍然无法在那里找到您的消息,那么您应该查看您的系统日志守护程序的配置。它可能正在丢弃 LOG_NOTICE 消息或 LOG_USER 消息。您可以在系统级别配置 syslog 守护程序报告的内容。

关于运行守护进程后找不到守护进程日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10545301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com