screenと.bashrcとscpと
.bashrcにログインしたらscreenを起動するように記述したせいで、scpでのファイルのコピーができなくなってはまったメモです。
ローカルだったり、sshで接続した先だったり、ログインするたびに
$ screen
を入力するのが面倒だったので.bashrcにログインしたらscreenを自動で起動するように書きました。
if [ "$TERM" != 'screen' ]; then screen -rx || screen -D -RR fi
これでログインすると、既にscreenのセッションが存在していた場合はそれを開いて、存在しない場合は新たに作成する、という動作でscreen万歳な環境だったのですが。
この環境にscpでファイルをコピーしようとするとエラーが発生してコピーできないのです。
原因がscreenが自動的に起動するように.bashrcに記述したせいというのがわかったので、とりあえず
if [ "$TERM" = 'xterm' -o "$TERM" = 'linux' ]; then screen -rx || screen -D -RR fi
とすることで回避できましたが…… もっと良い方法があるような気がしてなりません。
追記:
解決編。screenと.bashrcとscpと解決編 - 四角革命前夜