基礎知識すぎて笑われそうですが、sh内で管理者権限で実行可能jarを実行しようとしたら、環境変数が読み込めなくて無駄に時間を費やしたので一応メモ。
<div style=”background-color: whitesmoke; padding: 5px; width: 100%;”>
#!/bin/sh
# 環境変数
export ENV_TYPE=production
export SERVER_ID=1
# 実行
sudo java -jar my-app.jar
</div>
省略していますが、大体こんな感じのシェルを実行しようとしていました。
AWSのEC2インスタンスでポート番号80でアプリケーションを動かす際には、管理者権限で実行しないといけないようで、
脳死でjavaコマンドにsudoを付けました。
そしたら、デプロイ時に環境変数を読み込むところが、軒並みnullになってしまいました。
いやー世の中甘くないですな。
<div style=”background-color: whitesmoke; padding: 5px; width: 100%;”>
# 実行
sudo -E java -jar my-app.jar
</div>
実行時に「-E」のオプションを付けてjavaコマンドを実行すればOKです。
sudoにもオプションがあるんだなぁ