centos – 无法运行Expect“不再是ptys. “作为普通用户

前端之家收集整理的这篇文章主要介绍了centos – 无法运行Expect“不再是ptys. “作为普通用户前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个运行CentOS 7.4的LXC容器.
在正常用户运行期望时,我收到以下错误.
  1. user@server ~> expect -c "spawn ls"
  2. spawn ls
  3. The system has no more ptys. Ask your system administrator to create more.
  4. while executing
  5. "spawn ls"

但是如果我们从root用户执行相同的操作,它就可以工作.

  1. [root@server]# expect -c "spawn ls"
  2. spawn ls

mount的输出也有这些在挂载点.
/ dev / pts类型devpts上的devpts(rw,relatime,seclabel,mode = 620,ptmxmode = 000)

我在服务器上运行了以下更新.

  1. mknod -m 600 /dev/console c 5 1 2>/dev/null
  2. mknod -m 666 /dev/null c 1 3 2>/dev/null
  3. mount -n -t tmpfs none /dev 2>/dev/null
  4. mknod -m 622 /dev/console c 5 1 2>/dev/null
  5. mknod -m 666 /dev/null c 1 3 2>/dev/null
  6. mknod -m 666 /dev/zero c 1 5 2>/dev/null
  7. mknod -m 666 /dev/ptmx c 5 2 2>/dev/null
  8. mknod -m 666 /dev/tty c 5 0 2>/dev/null
  9. mknod -m 444 /dev/random c 1 8 2>/dev/null
  10. mknod -m 444 /dev/urandom c 1 9 2>/dev/null
  11. chown root:tty /dev/{console,ptmx,tty} 2>/dev/null
  12. ln -s /proc/self/fd /dev/fd 2>/dev/null
  13. ln -s /proc/self/fd/0 /dev/stdin 2>/dev/null
  14. ln -s /proc/self/fd/1 /dev/stdout 2>/dev/null
  15. ln -s /proc/self/fd/2 /dev/stderr 2>/dev/null
  16. ln -s /proc/kcore /dev/core 2>/dev/null
  17. mkdir /dev/pts 2>/dev/null
  18. mkdir /dev/shm 2>/dev/null
  19. mount -t devpts -o gid=4,mode=620 none /dev/pts 2>/dev/null
  20. mount -t tmpfs none /dev/shm 2>/dev/null
  21. chmod 666 /dev/null

但是我仍然无法像普通用户那样运行expect命令.
我有一些脚本需要作为普通用户运行expect语句.

我已经做了一些我能想到的方法.请帮忙!!

经过相当多的搜索,我发现我需要在chroot中创建/ dev / ptmx和/ dev / pts结构.
  1. #!/bin/sh
  2. mknod /dev/ptmx c 5 2
  3. chmod 666 /dev/ptmx
  4. mkdir /dev/pts
  5. chmod 755 /dev/pts
  6. mount -t devpts -o gid=5,mode=620 none /dev/pts

感谢网站https://mintcast.org/building-linux/
我引用了上述网站的脚本和详细信息.

执行脚本后,我能够执行该命令

  1. [user@server]# expect -c "spawn ls"
  2. spawn ls

猜你在找的CentOS相关文章