我有一个运行CentOS 7.4的LXC容器.
在正常用户运行期望时,我收到以下错误.
在正常用户运行期望时,我收到以下错误.
user@server ~> expect -c "spawn ls" spawn ls The system has no more ptys. Ask your system administrator to create more. while executing "spawn ls"
但是如果我们从root用户执行相同的操作,它就可以工作.
[root@server]# expect -c "spawn ls" spawn ls
mount的输出也有这些在挂载点.
/ dev / pts类型devpts上的devpts(rw,relatime,seclabel,mode = 620,ptmxmode = 000)
我在服务器上运行了以下更新.
mknod -m 600 /dev/console c 5 1 2>/dev/null mknod -m 666 /dev/null c 1 3 2>/dev/null mount -n -t tmpfs none /dev 2>/dev/null mknod -m 622 /dev/console c 5 1 2>/dev/null mknod -m 666 /dev/null c 1 3 2>/dev/null mknod -m 666 /dev/zero c 1 5 2>/dev/null mknod -m 666 /dev/ptmx c 5 2 2>/dev/null mknod -m 666 /dev/tty c 5 0 2>/dev/null mknod -m 444 /dev/random c 1 8 2>/dev/null mknod -m 444 /dev/urandom c 1 9 2>/dev/null chown root:tty /dev/{console,ptmx,tty} 2>/dev/null ln -s /proc/self/fd /dev/fd 2>/dev/null ln -s /proc/self/fd/0 /dev/stdin 2>/dev/null ln -s /proc/self/fd/1 /dev/stdout 2>/dev/null ln -s /proc/self/fd/2 /dev/stderr 2>/dev/null ln -s /proc/kcore /dev/core 2>/dev/null mkdir /dev/pts 2>/dev/null mkdir /dev/shm 2>/dev/null mount -t devpts -o gid=4,mode=620 none /dev/pts 2>/dev/null mount -t tmpfs none /dev/shm 2>/dev/null chmod 666 /dev/null
但是我仍然无法像普通用户那样运行expect命令.
我有一些脚本需要作为普通用户运行expect语句.
我已经做了一些我能想到的方法.请帮忙!!
经过相当多的搜索,我发现我需要在chroot中创建/ dev / ptmx和/ dev / pts结构.
原文链接:https://www.f2er.com/centos/373726.html#!/bin/sh mknod /dev/ptmx c 5 2 chmod 666 /dev/ptmx mkdir /dev/pts chmod 755 /dev/pts mount -t devpts -o gid=5,mode=620 none /dev/pts
感谢网站https://mintcast.org/building-linux/
我引用了上述网站的脚本和详细信息.
执行脚本后,我能够执行该命令
[user@server]# expect -c "spawn ls" spawn ls