不写入日志 - 但仅限于从rc.local

时间:2015-12-31 00:06:17

标签: c linux logging local var

我在Ubuntu和Raspberry PI上运行了一个简单的C应用程序。

需要定期写入日志文件,当从命令行以root(或sudo)运行时,它会完美地创建/写入日志文件。

日志文件位于/var/log/app-name/app-name.log中(其中app-name是我的应用程序的名称)。

首先检查文件夹是否存在,如果不存在则创建它。然后它打开创建/追加的日志文件并输出到它。

但是,当我从rc.local启动应用程序时,应用程序仍然可以完美地完成其他任务,读取远程telnet服务器,读取/写入本地mysql数据库等,但它永远不会创建/ var / log文件夹或写入日志文件,即使它已经退出(fopen返回0)。

我确信它会变得非常简单,但我不能指责它。

我尝试过setuid等,没有任何效果。

有什么想法吗?

测试&为日志创建文件夹就像这样。这在从命令行运行时有效,但在从rc.local

运行时有效
void checkVarLogDir()
{
    struct stat st = {0};
    if (stat("/var/log/phone_log", &st) == -1) 
    {
        mkdir("/var/log/phone_log", 0744);
    }
}

从rc.local运行,如下所示:

/ path-to-app / phlog&

我也可以在这里添加fopen / fwrite / fclose,但是当它不是从rc.local运行时,它很简单。

0 个答案:

没有答案