hack のためのネタ帳, etc,,,

状況

承前で
ssh $HOST -t "byobu -Rxr byobu"
みたいにして ssh する際に自動 reattach してたんだけど、remote 側に byobu って session が存在しないと reattach できないので失敗する。
一応、-R が「Reattach if possible, otherwise start a new session.」なんだけどこれがうまく機能してない状態。

また、reattache 出来る byobu session が存在せず、新しく byobu session を作成する場合、
Cygwin 側の LC_CTYPE が ja_JP.UTF-8@cjknarrow になっていると
byobu 起動時に
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: ??????????????????????
みたいに表示されて、byobu 上でマルチバイト文字の表示が破綻する。
ただし、LC_CTYPE が正しく渡った byobu session が既に存在しており、それに reattach する場合は、この問題は生じない模様。

あと、Cygwin では
autossh $HOST -t "byobu -Rxr byobu"
とか
autossh $HOST
だと、autossh の help が表示されるのみで、自動接続以前の問題としてそもそも接続されない。

解法

byobu の option -R は以下のように末尾に持って来るとよいようだ。
ssh $HOST -t "byobu -xr byobu -R"
また、LC_CTYPE については、
ssh $HOST
だと、Ubuntu 20.04.1 LTS では
  • /etc/profile.d/01-locale-fix.sh

eval $(/usr/bin/locale-check C.UTF-8)
が呼ばれて、自動的に
LANG='C.UTF-8'
LC_CTYPE='C.UTF-8'
に置き換えられるようなのだが、なぜか、
ssh $HOST -t "byobu -xr byobu -R"
だと /etc/profile.d 以下が処理されてないらしく、LC_CTYPE に ja_JP.UTF-8@cjknarrow が入ってしまうようだ。
そもそもの問題として、
~/.ssh/config に
SendEnv LANG LC_* TERM
みたいな設定しているのが問題なような気もするのだが、
とりあえずこれは ~/.ssh/config に決め打ちで
SetEnv LC_CTYPE=ja_JP.UTF-8
SetEnv LANG=ja_JP.UTF-8
を追加しておくことで回避。

最後の、autossh が起動しない問題は、どうも monitor port の問題らしい。
help では
    -M specifies monitor port. May be overridden by environment
       variable AUTOSSH_PORT. 0 turns monitoring loop off.
       Alternatively, a port for an echo service on the remote
       machine may be specified. (Normally port 7.)
となっていて、うちの Cygwin の環境だと
$ declare -p AUTOSSH_PORT
-bash: declare: AUTOSSH_PORT: not found
のように AUTOSSH_PORT は設定されてない。
とりあえず、AUTOSSH_PORT か -M に何か適当なポート番号を与えると接続出来たのだが、
説明では [-M monitor_port[:echo_port]] となっているので必須オプションではないはずだし、
Ubuntu ではこれ与えなくても動くのだが、なぜ?

autossh "-M" default port」とかでググって 辺りを見ると、デフォルトポートはないんじゃね?みたいな雰囲気で、
Ubuntu の場合、Shell Script で wrapper 書いてあって適当なポート割り当ててるので、monitoring port 設定しなくても動いているっぽい。
つぅか、これ必須オプションなの???
とりあえず -M0 で monitoring 切っておいてもあまり問題ない感じなだが、どうしようかな?

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

編集にはIDが必要です