报错解决:the input device is not a TTY

在Linux环境中,使用shell脚本重启过程中启动Docker容器并执行命令时,可能会遇到缺少TTY终端的错误。这通常发生在尝试交互式操作容器但未使用-it参数时。解决方案是去掉这个参数,改为使用`nohup`和`&`组合,使脚本在后台运行。示例脚本包括:`sudo nvidia-docker start Jupyter; nohup sudo docker exec Jupyter bash /etc/init.d/Jupyter.sh &`。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在重启过程中用shell脚本去启动docker容器并执行某一操作时,可能会出现如题所示错误,原因是后台linux执行的时候没有终端设备,TTY一词源于Teletypes,或teletypewriters。其实出现该错误和我们的一个习惯有关,一般来说我们启动容器后要与容器进行交互操作,这是,就要加上"-it"这个参数,而在重启过重中或定时任务中,如果让脚本在后台运行,就没有可交互的终端,这就会引发如题所示错误,解决办法就是去掉“-it”这个参数。

sudo nvidia-docker start Jupyter;
nohup sudo docker exec Jupyter bash /etc/init.d/Jupyter.sh &
exit 0
sudo nvidia-docker start Jupyter;
nohup sudo docker exec Jupyter bash /etc/init.d/Jupyter.sh;
exit 0
sudo nvidia-docker start Jupyter;
sudo docker exec Jupyter bash /etc/init.d/Jupyter.sh;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值