system() 在 cron 作业中无法在 C 中工作
system() not working in C on cron job
当程序是 运行 来自 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;
}
Crontab 文件:
*/1 * * * * /home/vlad/MIA/Alarm/test >> /home/vlad/MIA/debug_test.txt
Cron 作业 运行 具有一组有限的环境变量。
要查看环境,您可以像这样创建一个临时 cron 作业:
* * * * * printenv > cron-env
最有可能的罪魁祸首是 $PATH
变量。 mpg123
命令可能在交互式 shell 中的 $PATH
目录中,但不在提供给 cron 作业的默认 $PATH
中。
UPDATE :我看到 mpg321
包提供了 mpg123
命令(在 Ubuntu 上),大概会安装它作为 /usr/bin/mpg123
。但我不知道该命令的作用,或者您如何判断它没有 运行。调试它的第一步应该是尝试 运行 一个简单的命令,这样你就可以清楚地判断它是否 运行。请确定,您正在将 crontab 提供给 crontab
命令,是吗?如果是这样,它应该出现在 crontab -l
.
的输出中
这似乎是一个组合,cron 作业不是 运行,我在 Keith Thompson 的帮助下弄明白了,而且 cron 作业需要一些常态变量。我所做的工作是从具有所需变量的脚本中启动 C 程序。
.sh 文件
#/bin/bash
##Needed to have cron play an audio file
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export DISPLAY=:0.0
export XAUTHORITY=/home/vlad/.Xauthority
#Runs main Alarm check C program.
/home/vlad/MIA/Alarm/Alarm_Main
当程序是 运行 来自 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;
}
Crontab 文件:
*/1 * * * * /home/vlad/MIA/Alarm/test >> /home/vlad/MIA/debug_test.txt
Cron 作业 运行 具有一组有限的环境变量。
要查看环境,您可以像这样创建一个临时 cron 作业:
* * * * * printenv > cron-env
最有可能的罪魁祸首是 $PATH
变量。 mpg123
命令可能在交互式 shell 中的 $PATH
目录中,但不在提供给 cron 作业的默认 $PATH
中。
UPDATE :我看到 mpg321
包提供了 mpg123
命令(在 Ubuntu 上),大概会安装它作为 /usr/bin/mpg123
。但我不知道该命令的作用,或者您如何判断它没有 运行。调试它的第一步应该是尝试 运行 一个简单的命令,这样你就可以清楚地判断它是否 运行。请确定,您正在将 crontab 提供给 crontab
命令,是吗?如果是这样,它应该出现在 crontab -l
.
这似乎是一个组合,cron 作业不是 运行,我在 Keith Thompson 的帮助下弄明白了,而且 cron 作业需要一些常态变量。我所做的工作是从具有所需变量的脚本中启动 C 程序。
.sh 文件
#/bin/bash
##Needed to have cron play an audio file
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export DISPLAY=:0.0
export XAUTHORITY=/home/vlad/.Xauthority
#Runs main Alarm check C program.
/home/vlad/MIA/Alarm/Alarm_Main