2016-03-10 3 views
6
私は私が変数を持って、このファイルに EnvironmentFile=/etc/default/myserviceファイル

systemdに、新しいラインが重要であるenvironmentfile、中に複数行の変数

を通じて環境変数を供給していますし、どのサービスを制御するために、Debianのジェシーにsystemdに使用しています

これは公共秒の

ドキュメント(同じファイルのbashでsourceをしているが正しく動作しますが)エラーを報告しているsystemdに喜ばないようにそれを置く

JWT_PUB_KEY="-----BEGIN FOO BAR KEY----- 
    MIIBgjAcBgoqhkiG9w0BDAEDMA4ECKZesfWLQOiDAgID6ASCAWBu7izm8N4V 
    2puRO/Mdt+Y8ceywxiC0cE57nrbmvaTSvBwTg9b/xyd8YC6QK7lrhC9Njgp/ 
    ... 
    -----END FOO BAR KEY-----" 

キーあなたは\と、各ファイルを終了することにより、複数行の変数を持つことができますが、それは各行を連結ことystemdレポートは

があります(ので、私のプログラムは、これ以上の有効な公開鍵である1行、下の全体を受け取ります)行の終わりを保存するための既知の方法?のようなものを私のアプリケーションコードの中で解釈するようなハックに頼ることなく?

答えて

0

疑わしいので、Systemdは環境変数定義内で\nを受け入れます。あなたは特別な構文解析を実行する必要はありません。適切な文字列を追加して実際の改行文字をエスケープしてください。\n Systemdは残りの部分を処理し、改行をリテラルに変換する必要があります。あなたのケースでは、これはこのようになります:

JWT_PUB_KEY="-----BEGIN FOO BAR KEY-----\n\ 
MIIBgjAcBgoqhkiG9w0BDAEDMA4ECKZesfWLQOiDAgID6ASCAWBu7izm8N4V\n\ 
2puRO/Mdt+Y8ceywxiC0cE57nrbmvaTSvBwTg9b/xyd8YC6QK7lrhC9Njgp/\n\ 
...\n\ 
-----END FOO BAR KEY-----" 
+0

私は\\ n \ 'で終わったので、私はその組み合わせをテストしたと思いますが、それは長い時間でしたので、私が見落としている可能性があります –

+0

\\ nは、 '\'と改行文字 '\ n'の代わりに文字 'n'を解析する – Av4t4r

+1

@Vality、実際には動作しません。それを実行するとPythonで印刷します。変数は1行にまとめられます –

0

あなたは(?パース)あなたの最後に改行文字を解釈する必要はありません、それがすべてでは「\ n」を追加することを意味し、as explained here、自動的に行われなければなりません各ラインの終わりに、そのトリックを行う必要があります。

関連する問題