Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.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
Linux 运行使用stdin的cron作业_Linux_Select_Cron_File Descriptor - Fatal编程技术网

Linux 运行使用stdin的cron作业

Linux 运行使用stdin的cron作业,linux,select,cron,file-descriptor,Linux,Select,Cron,File Descriptor,我有一个进程,它使用select轮询stdin文件描述符,当我从控制台运行它时,它工作正常。在cron下添加此过程后,我看到输出指示在cron下使用stdin调用select时出现问题。当使用cron时,有没有办法解决这个问题,并使流程认为有一个stdin文件描述符没有接收任何内容?所以我所做的是检查/proc/self/fd/0,如果不是/dev/pts/something,我跳过select命令。使用类似以下内容检查您的fd 0 bool rc=true; 字符链接名[256]; const

我有一个进程,它使用
select
轮询
stdin
文件描述符,当我从控制台运行它时,它工作正常。在
cron
下添加此过程后,我看到输出指示在
cron
下使用
stdin调用
select
时出现问题。当使用
cron
时,有没有办法解决这个问题,并使流程认为有一个
stdin
文件描述符没有接收任何内容?

所以我所做的是检查/proc/self/fd/0,如果不是/dev/pts/something,我跳过
select
命令。使用类似以下内容检查您的fd 0

bool rc=true;
字符链接名[256];
const char*fd0=“/proc/self/fd/0”;
const char*devPts=“/dev/pts”;
结构统计某人;
lstat(fd0和sb);
readlink(fd0,linkName,sb.st_大小+1);
linkName[sb.st_size]='\0';
if(strncmp(linkName,devPts,sizeof(devPts))!=0)
{

std::我们是否希望看到一些代码以便更好地猜测。我从中获取了代码,但我必须承认,这段代码在控制台和
cron
中运行得很好。我想这是我的代码的一个问题,但只是为了确保,在运行需要
cron
下的stdin文件描述符的进程时,是否存在已知问题?(这显然不会与流程交互)我建议您查看中的crontab指南,并尽量对您的问题更加简洁,不要假装有人打开链接,检查完整的代码,然后返回建议。