|
>>4235 zsh お察しの通り、問題のあるサーバだけLC_ALLが設定されていました! --動かないサーバー----------- LANG= LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_ALL=JA16SJIS --問題ないサーバー----------- LANG=ja_JP.PCK LC_CTYPE="ja_JP.PCK" LC_NUMERIC="ja_JP.PCK" LC_TIME="ja_JP.PCK" LC_COLLATE="ja_JP.PCK" LC_MONETARY="ja_JP.PCK" LC_MESSAGES="ja_JP.PCK" LC_ALL= ----------------------------- 1、rootでLC_ALLが設定されているという事でしょうか? 2、問題ないサーバーと同じ環境にするには何処を直せば良いのでしょうか? 3、2がサーバー管理方針などで変更できない場合、C-Shellで unsetenv LC_ALL setenv LANG ja_JP.PCK とすれば良いのでしょうか? 宜しくお願い致します。 |
|
>>4232 68user >コネクションが切れた場合は、connect しなおす必要があります。 コレクションが切れているか否かの検知ですが、クライアントからsendを 行ったときのタイムアウトを検知したときが一般的でしょうか (むしろこれしかない?) 宜しくお願いします。 |
|
>>4235 zsh 試しに下記を実行してみましたが、元に戻ってしまいました。。 echo内の日本語が文字化け?して「`」になっている為でしょうが 何故未だ日本語が表示できないのでしょうか? 問題ないサーバーではダブルコーテーションで囲まれてるのに 下記結果では囲まれてないのがダメなのでしょうか? ---------------------------------------------------- #!/usr/bin/csh -fx locale unsetenv LC_ALL setenv LANG ja_JP.PCK setenv LC_CTYPE ja_JP.PCK setenv LC_NUMERIC ja_JP.PCK setenv LC_TIME ja_JP.PCK setenv LC_COLLATE ja_JP.PCK setenv LC_MONETARY ja_JP.PCK setenv LC_MESSAGES ja_JP.PCK locale echo "ロードエラーチェックリスト作成処理($0) 開始" ---------------------------------------------------- locale LANG= LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_ALL=JA16SJIS unsetenv LC_ALL setenv LANG ja_JP.PCK setenv LC_CTYPE ja_JP.PCK setenv LC_NUMERIC ja_JP.PCK setenv LC_TIME ja_JP.PCK setenv LC_COLLATE ja_JP.PCK setenv LC_MONETARY ja_JP.PCK setenv LC_MESSAGES ja_JP.PCK locale LANG=ja_JP.PCK LC_CTYPE=ja_JP.PCK LC_NUMERIC=ja_JP.PCK LC_TIME=ja_JP.PCK LC_COLLATE=ja_JP.PCK LC_MONETARY=ja_JP.PCK LC_MESSAGES=ja_JP.PCK LC_ALL= echo [hG[`FbNXgャ(/disk18/acua/acua01/sh/FNC07998.csh) Jn 不整合 - ` ---------------------------------------------------- |
|
>>4238 まつ 実験してみましたが、うまくいかないサーバには ja_JP.PCK の ロケールがインストールされていないようです。 >>4232 68user で「csh のバグでは」と言いましたがこれは誤りで、csh だけが 真面目にエラーチェックしているような感じです。 動かないマシン (Solaris8) の /usr/lib/locale/ja_JP.PCK/: LC_MESSAGES/ 動くマシン (Solaris2.6) の /usr/lib/locale/ja_JP.PCK/: LC_CTYPE/ LC_MESSAGES/ LC_TIME/ ja_JP.PCK.so.1 locale_description methods_ja_JP.PCK.so.1 そして ja_JP.PCK ロケールが含まれているマシンであっても、 #!/bin/csh setenv LANG ja_JP.PCK echo "ロードエラーチェックリスト作成処理($0) 開始" このスクリプトは動作しませんでした。おそらく、ja_JP.PCK にした 時点では、既にスクリプトの字句解析は終了しているからだろうと思います。 対策案は 3つ。 案1. - ja_JP.PCK ロケールをインストールする。インストール方法は知りませんが、 以前他のマシンから /usr/lib/locale/ja_JP.PCK/ をぶっこ抜いてきたことが あったっけ。 - さらに wrapper スクリプトを作る 案2. Shift_JIS の「チ」の 2バイト目が ` であることが直接の原因なわけで、 echo 'ロードエラーチェックリスト作成処理('$0') 開始' などと '' で囲んで ` を解釈させないようにする。 案3. 一番いいのは、スクリプトを EUC-JP に変えて、ロケールを混在 させないこと。 あと、 > LC_ALL=JA16SJIS というロケールは存在しないので、おそらく無効なロケール扱いされて いるでしょう。JA16SJIS って Oracle 的なロケール表記ですから。 LANG と LC_* の関係は以下の URL をどうぞ。 http://www.jp.freebsd.org/QandA/HTML/2199.html http://www.jp.freebsd.org/QandA/HTML/2200.html |