-su: /dev/tty: 没有这样的设备或地址
-su: /dev/tty: No such device or address
有人可以向我解释为什么会这样吗?
# su - someone -s /bin/bash -c "ls -la /dev/tty"
crw-rw-rw- 1 nobody nogroup 5, 0 Dec 7 20:53 /dev/tty
# BUT:
# su - someone -s /bin/bash -c "echo hello > /dev/tty"
-su: /dev/tty: No such device or address
我正在尝试构建一个 docker 容器,其中有两个服务。这些服务由 Shell-Script:
启动
CMD ["./starter.sh"]
使用 Dockerfile
我已将日志重定向到 /dev/stderr
或 /dev/tty
# None of the following works:
RUN ln -sf /dev/tty /var/log/thelog.log
RUN ln -sf /dev/stdout /var/log/thelog.log
RUN ln -sf /dev/stderr /var/log/thelog.log
问题是我正在尝试 运行 其中一项服务不是 root (su -
someone -c "service"
),这会出现以下错误:
unable to open log file [/var/log/thelog.log]: [6] No such device or address
我该如何解决这个问题?我希望日志链接到 /dev/*
并且希望 运行 用户作为非根用户。我还尝试将用户添加到组 tty
,但没有成功。
谢谢。
su 的联机帮助页指出执行的命令将没有控制终端。对 /dev/tty 的任何写入都会 return ENXIO 错误:
$ errno ENXIO
ENXIO 6 No such device or address
sudo 确实分配了一个控制终端:
sudo -u someone /bin/bash -c "echo hello > /dev/tty"
您无需将 link 符号化为 /dev/tty(/dev/stdout 和 /dev/stderr 就足够了)或使用 sudo 如果您在 Dockerfile 中使用 USER 指令或 supervisor.
有人可以向我解释为什么会这样吗?
# su - someone -s /bin/bash -c "ls -la /dev/tty"
crw-rw-rw- 1 nobody nogroup 5, 0 Dec 7 20:53 /dev/tty
# BUT:
# su - someone -s /bin/bash -c "echo hello > /dev/tty"
-su: /dev/tty: No such device or address
我正在尝试构建一个 docker 容器,其中有两个服务。这些服务由 Shell-Script:
启动CMD ["./starter.sh"]
使用 Dockerfile
我已将日志重定向到 /dev/stderr
或 /dev/tty
# None of the following works:
RUN ln -sf /dev/tty /var/log/thelog.log
RUN ln -sf /dev/stdout /var/log/thelog.log
RUN ln -sf /dev/stderr /var/log/thelog.log
问题是我正在尝试 运行 其中一项服务不是 root (su -
someone -c "service"
),这会出现以下错误:
unable to open log file [/var/log/thelog.log]: [6] No such device or address
我该如何解决这个问题?我希望日志链接到 /dev/*
并且希望 运行 用户作为非根用户。我还尝试将用户添加到组 tty
,但没有成功。
谢谢。
su 的联机帮助页指出执行的命令将没有控制终端。对 /dev/tty 的任何写入都会 return ENXIO 错误:
$ errno ENXIO
ENXIO 6 No such device or address
sudo 确实分配了一个控制终端:
sudo -u someone /bin/bash -c "echo hello > /dev/tty"
您无需将 link 符号化为 /dev/tty(/dev/stdout 和 /dev/stderr 就足够了)或使用 sudo 如果您在 Dockerfile 中使用 USER 指令或 supervisor.