Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从cronjob写入文件_C_Cron_Raspberry Pi_Raspbian - Fatal编程技术网

无法从cronjob写入文件

无法从cronjob写入文件,c,cron,raspberry-pi,raspbian,C,Cron,Raspberry Pi,Raspbian,我有一个小的Raspberry PI集群,每个独立的PI从母舰上获得程序更新。一切都在本地局域网上,不接触互联网 更新可执行文件的代码为: strcpy(tmp,"/home/sw/update"); f = fopen(tmp, "w"); if (f == NULL) { printf("Could not open program %s to update\n",tmp); return 1; } fwrite(cmd,sizeof(char),tot

我有一个小的Raspberry PI集群,每个独立的PI从母舰上获得程序更新。一切都在本地局域网上,不接触互联网

更新可执行文件的代码为:

strcpy(tmp,"/home/sw/update");
f = fopen(tmp, "w");
if (f == NULL)  { 
        printf("Could not open program %s to update\n",tmp);
        return 1;
} 
fwrite(cmd,sizeof(char),totalRead-2,f);
fclose(f);
如果我从shell(作为root)运行它,它工作得很好。将其作为cron作业运行总是失败,并显示上述消息“无法打开程序…”

我已将权限设置为777,并将要更新的文件的所有者设置为root(以消除这些问题)。更新程序每小时在集群中的每个PI上运行一次(有另一种方法确定是否需要更新)。cron表条目是:

0 * * * * /home/sw/updatepi >> /var/log/updatepi.log

有什么想法吗?

检查错误号并告诉我们其原因value@robin.kocherrno=26文本文件正忙。我检查过了,可执行文件不在内存中。还有什么事情会导致它被标记为正在使用?对不起。你的最后一句话比我的早。我想我明白了。存在竞争条件,更新程序正在丢失。请检查错误号并告诉我们其错误value@robin.kocherrno=26文本文件正忙。我检查过了,可执行文件不在内存中。还有什么事情会导致它被标记为正在使用?对不起。你的最后一句话比我的早。我想我明白了。存在竞争条件,更新程序正在丢失。