
現在デーモンサービスを作成していますが、既存のサービス機能を利用するために、起動スクリプトは/ etc / statusから取得されます。
最初の行では、ロケールが POSIX に設定されているため、サービスに問題が発生します。
# Do _not_ be fooled by non POSIX locale
LC_ALL=POSIX
export LC_ALL
問題は、スクリプトから開始されたサービスがこのロケールを継承することです。この問題に対する簡単な解決策は、子プロセスを開始する前にロケールを設定解除することです。しかし、これが何を意味するのかわかりません。 rc.statusからデータを取得した後にLC_ALL変数をリセットすると、どのような結果が発生しますか?
答え1
POSIXではなくロケールを使用して呼び出すと、多くのシステムデーモンが奇妙に動作します。特に、大文字と小文字を区別するUTF-8コントラストは通常処理されません。 POSIX 以外の時間形式では、通常、固定時間形式を必要とする標準ツールでログファイルを解析できなくなる可能性があります。まれですが、LC_CTYPE
問題が発生する可能性があります。
通常、デーモンにシステム全体のロケールが必要な/etc/sysconfig/language
場合rc.status
。 (これは安全に見える一種のSuSEを想定します。BSDなら現在どこにrc.status
保存されているのかわかりません。RC_
)RC_LC_ALL