yamada_masa
2024年9月27日 14時36分
スクリプトでwebアプリを起動しているが、自動起動したcrondからだとwebアプリが立ち上がらない。
システム起動後、シェルから実行したcrondの場合は立ち上がる。
手順
①下記コマンドでcrondを自動起動を設定
rc-update add crond && persist_file -v /etc/runlevels/default/crond
②reboot後、psコマンドで起動していることを確認(これを自動起動したcrondと呼ぶ)
1667 root 0:00 /usr/sbin/crond -c /etc/crontabs -f
③crond登録内容
/var/app/volumes # crontab -l # do daily/weekly/monthly maintenance # min hour day month weekday command */15 * * * * run-parts /etc/periodic/15min 0 * * * * run-parts /etc/periodic/hourly 0 2 * * * run-parts /etc/periodic/daily 0 3 * * 6 run-parts /etc/periodic/weekly 0 5 1 * * run-parts /etc/periodic/monthly * * * * * for i in `seq 0 15 59`; do (sleep ${i}; /var/app/volumes/web_run.sh) & done;
④crondは定期実行されている。
2517 root 0:00 /bin/sh -c for i in `seq 0 15 59`; do (sleep ${i}; /var/app/volumes/web_run.sh) & done; 2518 root 0:00 /bin/sh -c for i in `seq 0 15 59`; do (sleep ${i}; /var/app/volumes/web_run.sh) & done; 2519 root 0:00 /bin/sh -c for i in `seq 0 15 59`; do (sleep ${i}; /var/app/volumes/web_run.sh) & done; 2520 root 0:00 sleep 30 2522 root 0:00 sleep 15 2523 root 0:00 sleep 45
質問
自動起動時とシェルからの実行でcrondの挙動は変わりますでしょうか。
web_runc.shからさらにwebアプリ(java)を起動するスクリプトを呼び出しています。
この中で最終的にexecでjavaアプリを起動しています。
yamada_masa
2024年9月27日 16時58分
解決いたしました。
環境変数JAVA_HOMEの設定が問題でした。
/var/app/volumes/web_run.sh のスクリプト内で環境変数JAVA_HOMEを設定したところWEBアプリが起動しました。
/etc/profile にて環境変数を設定していましたが、自動起動の場合は、この設定が反映されていないようです。
追加した設定
取り急ぎ結果まで。
憶測になりますが、
/etc/profile は、シェルログイン時に読み込まれる設定との説明を見かけました。
そのためシステム起動時の処理では環境変数として設定されていないのだと思います。
https://wa3.i-3-i.info/word11795.html