ログメッセージを出力するPythonコードがいくつかあります。コマンドラインで実行すると、utf-8で問題なく動作します。特殊文字を含むログメッセージは正常に出力されます。ただし、nohupの下でバックグラウンドで実行すると、utf-8文字でbarfsします。
nohup python2.7 myProgram.py &
私が見るエラーは、通常の「utfをASCIIでエンコードしようとする」エラーです。
UnicodeEncodeError:'ascii'コーデックは71桁目の文字u'\ u2013'をエンコードできません:序数が範囲内にありません(128)
これは、nohupがPythonに通常の端末がないことを通知するためだと思います。そのため、デフォルトでasciiになります。nohupにutf-8を有効にして実行するように指示する方法、またはutf-8文字がバックグラウンドでnohupの下で実行されたときにクラッシュを引き起こさないように設定する方法はありますか?