#navi(../)
* 端末がキー入力を受け付けなくなった場合の対処 [#v8edcf61]
Windowsで動作するTera TermやPoderosaでssh接続時、文字入力を受け付けなくなった場合の対処方法を以下に記します。~
尚、本資料では、キー操作ミスにより文字入力を受け付けなくなったことを想定しています。~
以下に原因と対処方法について記述します。

#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)

* 関連資料 [#ia9f4e30]
[[win.just4fun.biz>http://win.just4fun.biz]]の記事です。
-[[sshで接続したPoderosaをサーバーから切断されないようにする>http://win.just4fun.biz/%E9%96%8B%E7%99%BA%E3%83%84%E3%83%BC%E3%83%AB/ssh%E3%81%A7%E6%8E%A5%E7%B6%9A%E3%81%97%E3%81%9FPoderosa%E3%82%92%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%8B%E3%82%89%E5%88%87%E6%96%AD%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B.html]]
-[[sshで接続したTeraTermをサーバーから切断されないようにする>http://win.just4fun.biz/%E9%96%8B%E7%99%BA%E3%83%84%E3%83%BC%E3%83%AB/ssh%E3%81%A7%E6%8E%A5%E7%B6%9A%E3%81%97%E3%81%9FTeraTerm%E3%82%92%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%8B%E3%82%89%E5%88%87%E6%96%AD%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B.html]]

* ターミナルが文字入力を受け付けなくなった原因と対処 [#e67a90b6]
''Ctrl + s''を押しませんでしたか?~
''Ctrl + q''を押せばターミナルで文字入力ができるようになります。

* Ctrl + s とCtrl + qについて [#n91aeab6]
sttyコマンドでキーに割り当てられている動作を確認してみます。~
以下、stty -a で出力した結果です。
 [sakura@centos6 ~]$ stty -a
 speed 9600 baud; rows 24; columns 80; line = 0;
 intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
 eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
 werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
 -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr
 -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
 -iuclc -ixany -imaxbel -iutf8
 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
 echoctl echoke

上記の出力をみると、以下の記述が表示されています。~
''^''はCtrlになります。
 start = ^Q; stop = ^S

つまり、Ctrl+Sはstop, Ctrl+Qはstartになります。

* Ctrl+S(stop)を常に無効にする方法 [#z6d001a7]
ついつい慣れていないと押してしまうCtrl+Sという状態であれば、.bashrcに以下の構文を追記します。~
動作確認はCentOS6で行いました。
 stty stop undef

catコマンドで出力した.bashrcの内容です。~
一番最後に追記しています。(ただし問題があります。問題と解決策も以下に記述してあります。)
 [sakura@centos6 ~]$ cat .bashrc
 # .bashrc
 
 # Source global definitions
 if [ -f /etc/bashrc ]; then
         . /etc/bashrc
 fi
 
 # User specific aliases and functions
 stty stop undef

これにより、Ctrl+Sで端末がロックすることはなくなります。~
bashを使用しているので、Ctrl+Sを押すとi-searchと表示されるようになります。~

&color(red){しかし困ったことにscpコマンドでファイルを設定したマシンに対してコピーすると以下のようなエラーが発生してしまいます。};~
この問題に対する対処方法は、以下に記します。
 [sakura@centos6 ~]$ scp file localhost:
 sakura@localhost's password:
 stty: 標準入力: 無効な引数です
 file                                          100%    2     0.0KB/s   00:00

scpのエラー回避策は、接続後に端末でstty stop undefを入力し設定するか、以下のように.bashrcを設定します。~

参考記事 : [[scpができなくなった時の対処法・bashrc編>Linux環境設定/scpができなくなった時の対処法・bashrc編]]

上記では最後に以下の1行を追記しました。
 stty stop undef
これを以下のように変更します。
 if [ "$SSH_TTY" != "" ]; then
         stty stop undef
 fi


catコマンドで出力した.bashrcの内容です。~
 [sakura@centos6 ~]$ cat .bashrc
 # .bashrc
 
 # Source global definitions
 if [ -f /etc/bashrc ]; then
         . /etc/bashrc
 fi
 
 # User specific aliases and functions
 if [ "$SSH_TTY" != "" ]; then
         stty stop undef
 fi

#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS