からvarsのkshスクリプトcustom_script.sh。にsystemd envが、私は次のようにsystemdサービスファイルを持つ実行可能スクリプト
- ExecStartPre
- EnvironmentFile
それを動作させるための方法があります:
は私がいない成功を収めて、次にsystemdのparamsを試してみましたか?あらかじめありがとうございます。
からvarsのkshスクリプトcustom_script.sh。にsystemd envが、私は次のようにsystemdサービスファイルを持つ実行可能スクリプト
それを動作させるための方法があります:
は私がいない成功を収めて、次にsystemdのparamsを試してみましたか?あらかじめありがとうございます。
Javaプロセスから変数にアクセスできるようにするには、何らかの形でシステムに挿入する必要があります。 docs for the EnvironmentFile=
directiveは、=
符号を持つパラメータ代入文ではない行はすべて無視されると言います。だから私たちはあなたのスクリプトを取ってそれを調理して、私たちが残したすべてが実行後の変数になるようにする必要があります。
custom_script.sh
ファイルをソースとし、環境内のすべての値をcustom_script.env
という別のファイルに出力する補助 "蒸留所"サービスを作成することができます。その後、 "蒸留された"環境ファイルをEnvironmentFile
ディレクティブのJavaプロセスに提供することができます。だから、
元のサービスは、このようなAfter=
とRequires=
を追加した場合、
[Unit]
Description=My description
After=custom-script-distillery
Requires=custom-script-distillery
[Service]
Type=simple
User=myuser
EnvironmentFile=/path/to/my/custom_script.env
ExecStart=/path/to/my/start_script.sh
ExecStop=/path/to/my/stop_script.sh
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target
その後蒸留所は、次のようになります。
[Unit]
Description=My service to distill custom_script.sh to an EnvironmentFile
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash -c 'set -o allexport; source /path/to/my/custom_script.sh; set +o allexport; unset IFS; set | grep -v "^BASH" > /path/to/my/custom_script.env'
を私はこれを行うことによって終わった: 'ExecStart =/binに/ bash -c 'set -a && source custom_script.sh && start_script.sh' ' ありがとうございます。 –
ああ、ええ、それは素晴らしいアイデアです。 – pneumatics