「screen」または「byobu」を起動しようとすると、次のエラーメッセージが表示されます。
$ screen
No more PTYs.
Sorry, could not find a PTY.
[screen is terminating]
私は十分に持っているようです:
$ ls /dev/pts
$ cat /proc/sys/kernel/pty/nr
0
$ cat /proc/sys/kernel/pty/max
4096
いくつかの詳細情報:
$ uname -a
Linux cube.mydedi.net 2.6.18-194.8.1.el5.028stab070.5 #1 SMP Fri Sep 17 19:10:36 MSD 2010 x86_64 x86_64 x86_64 GNU/Linux
さらに情報が必要な場合はコメントしてください。これはローエンドのVPS上にありますが、機能しなくなるまでは問題なく機能していました。しかし、他のすべては問題ないようです。
使用しているSSH接続にptyが割り当てられているため、ptyがゼロになるのは珍しいことです。
devpts
がマウントされていることを確認してください。
$ grep /dev/pts /proc/mounts
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0
そうでない場合:
# mount devpts /dev/pts -t devpts -o mode=620
同様の問題が発生しましたが、システム内でLXCコンテナーを起動したときに問題が発生しました(停止しても効果はありませんでした)。 screen(私のベースシステム内)が新しいPTYを開こうとしたとき、既存のPTYを開こうとしていて、所有権を変更できなかったことが判明しました。
非常に奇妙でしたが、最も明白な場所は/ dev/ptsマウントポイントだったので、単に再マウントしました。
# mount -o remount /dev/pts
そして問題はなくなりました。再マウント後に/ dev/ptsからPTYデバイスを「失う」ことはなかったので、かなり安全な操作のようです。
同様の問題がありましたが、問題は/ dev/pt *デバイスのパーミッションが間違っていたことです。
なぜ600に設定されているのかわからないので、rootだけがscreenを使用できたので、666に変更すると、他のユーザーでも機能しました。