PTY allocation request failed on channel 0
最近、VPS@ServersManを借りてみました。http://serversman.com/index.jsp
それで、いろいろサーバー環境構築をおこなっていたのですが、ある日sshでログイン後にこんなメッセージが表示されログインができなくなりました。
PTY allocation request failed on channel 0
ぬぬ。。特に何か設定を変えた訳でもなくなんだろう。ググって見るとVPSでよくあるような感じでも書かれているがこちらでは対応できず問い合わせてみる。
回答としては、sshのログイン制限に引っかかってログインができなくなってるとのこと。
自分は格安の\490のプランなので、最大8セッションが限界。
なぜかsshのプロセスが残ったままとなっていたので、そいつらをkillしてもらい無事ログインできるように。
プロセスが残ったままとなっている原因としては、VPSのデフォルト環境でajaxtermというブラウザからコマンドが実行できるというのが組み込まれており、こいつがきちんとログアウトしないと(ブラウザを閉じるとか)、ずーと残ったまんまとなってしまうようです。
# 自分はajaxtermからApacheを何度か再起動したのが原因っぽい。
対策としては、下記を見てプロセスを監視するとよいとのこと。
cat /proc/user_beancounters Version: 2.5 uid resource held maxheld barrier limit failcnt ・ ・ numpty 1 8 8 8 1383
このheldが8になるとログインできなくなる。
いちいち、こいつをチェックするのも面倒なのでcronで定期的にajaxtermを再起動することで対応することにしました。
基本的にはajaxtermは使わないで普通に端末を使うんですけど、http(s)でしか接続できない環境とかにいると結構重宝したりします。
まったく使わないのであれば、ajaxtermは無効にしておくのが無難な気がします。
こいつとかをrenameしておけばいいような気がするけど、試してません。
/etc/httpd/conf.d/proxy_ajaxterm.conf
ajaxtermをstopしておけばよいです
/etc/init.d/ajaxterm stop chkconfig off ajaxterm
まだ、VPSはいろいろお試し中ではありますが、値段を考えると結構お得だとは思います。
実際の運用ではきびしいとは思いますが、テスト環境や簡単なバッチ処理なら全然問題ないかと