错误 stty: '标准输入': 设备不适当的 ioctl 无法获取 kerberos 票证是什么意思?

错误 stty: '标准输入': 设备不适当的 ioctl 无法获取 kerberos 票证是什么意思?

我运行了命令:

nohup sh -c "echo $SU_PASSWORD | /afs/cs/software/bin/reauth; python -u ~/diversity-for-predictive-success-of-meta-learning/div_src/diversity_src/experiment_mains/main_diversity_with_task2vec.py --manual_loads_name diversity_ala_task2vec_hdb1_mio > $OUT_FILE 2> $ERR_FILE" > $PWD/main.sh.nohup.out$SLURM_JOBID &

大约 3 小时后,它在文件中输出以下错误main.sh.nohup.out$SLURM_JOBID

Password for brando9: stty: 'standard input': Inappropriate ioctl for device
stty: 'standard input': Inappropriate ioctl for device

Can't obtain kerberos tickets

我想知道这个错误意味着什么。

(解决它也很好,但这就是这个问题的主题如何发送新命令运行到已经运行的 nohup 进程或在 nohup 中一起/同时运行两个命令?并认为首先进行分治并询问错误的含义会很有用)


相关问题:

答案1

ioctl是通过打开的文件描述符与内核对话的一种包罗万象的方式。调用本身采用可变参数。由内核中的设备驱动程序来验证参数是否正确。前 2 个参数是文件描述符和命令号。

最初的用途是设置串行线的速度、设置中断字符、打开或关闭本地回显。其中每一个都会获得不同的命令号。

人们添加了诸如弹出 CD 之类的命令。

创建了通用错误代码,并添加了库例程以将其转换为您看到的“不适合设备的 ioctl”消息。如果您尝试告诉串行线弹出其 CD 或要求 CD 阅读器打开本地回显,则内核驱动程序将使用此功能。

因此,回答“我想知道错误意味着什么” - 这意味着某些软件要求内核执行某些操作,而内核说“这对于这种硬件设备没有意义”并且软件报告了这一点。该nohup命令通常会断开 stdin 文件描述符与它所连接的任何内容的连接,并将其重新附加到 /dev/null。因此,这可能很简单,就像软件假设 stdin 连接到终端并询问终端大小和 /dev/null 的设备驱动程序说“我不是终端,所以我无法告诉你是我的尺寸”

相关内容