web-dev-qa-db-ja.com

画面を開始しようとしたときに「これ以上PTYはありません」

「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上にありますが、機能しなくなるまでは問題なく機能していました。しかし、他のすべては問題ないようです。

11
Attila O.

使用している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
9
user1686

同様の問題が発生しましたが、システム内でLXCコンテナーを起動したときに問題が発生しました(停止しても効果はありませんでした)。 screen(私のベースシステム内)が新しいPTYを開こうとしたとき、既存のPTYを開こうとしていて、所有権を変更できなかったことが判明しました。

非常に奇妙でしたが、最も明白な場所は/ dev/ptsマウントポイントだったので、単に再マウントしました。

# mount -o remount /dev/pts

そして問題はなくなりました。再マウント後に/ dev/ptsからPTYデバイスを「失う」ことはなかったので、かなり安全な操作のようです。

2
Wojtek B.

同様の問題がありましたが、問題は/ dev/pt *デバイスのパーミッションが間違っていたことです。

なぜ600に設定されているのかわからないので、rootだけがscreenを使用できたので、666に変更すると、他のユーザーでも機能しました。

0
Michał Szajbe