gpt4 book ai didi

c - system() 在 C 语言中无法在 cron 作业中工作

转载 作者:行者123 更新时间:2023-11-30 14:58:49 25 4
gpt4 key购买 nike

当程序从 cron 作业运行时,system() 函数不起作用,但当我手动执行该程序时,它工作正常。

C 代码:

#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){

char command[256];

strcpy(command, "mpg123 /home/vlad/MIA/Alarm/test.mp3");
printf("Commnd Executed");
system(command);

return 0;
}

定时任务文件:

*/1 * * * * /home/vlad/MIA/Alarm/test >> /home/vlad/MIA/debug_test.txt

最佳答案

Cron 作业使用一组有限的环境变量运行。

要查看环境是什么样子,您可以创建一个临时 cron 作业,如下所示:

* * * * * printenv > cron-env

最有可能的罪魁祸首是$PATH变量。 mpg123 命令可能位于交互式 shell 中 $PATH 的目录中,但不在提供的默认 $PATH 中到 cron 作业。

更新:我看到mpg123命令是由mpg321包提供的(在Ubuntu上),大概将其安装为/usr/bin/mpg123。但我不知道该命令的作用是什么,也不知道如何判断它没有运行。调试的第一步应该是尝试运行一个简单的命令,以便您可以清楚地判断它是否运行。并且请确保,您正在将 crontab 提供给 crontab 命令,是吗?如果是这样,它应该出现在 crontab -l 的输出中。

关于c - system() 在 C 语言中无法在 cron 作业中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43151503/

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