前置き
数時間ハマって逃げ出したので確実ではないです。
状況
Itamae でこんなふうに書いたとします。
execute 'nohup /usr/bin/java -jar /opt/metabase/metabase.jar > /tmp/metabase_stdout.log 2> /tmp/metabase_error.log &' do # hoge end
適用するとこうなります。バックグランドでの実行はされません。
INFO : execute[nohup /usr/bin/java -jar /opt/metabase/metabase.jar > /tmp/metabase_stdout.log 2> /tmp/metabase_error.log &] executed will change from 'false' to 'true' DEBUG : Executing `nohup /usr/bin/java -jar /opt/metabase/metabase.jar > /tmp/metabase_stdout.log 2> /tmp/metabase_error.log &`... DEBUG : exited with 0 DEBUG : This resource is updated. DEBUG : This resource is updated.
対応策
愚直に ssh
で実行したらうまくいきました。
$ ssh root@123.123.123.123 nohup /usr/bin/java -jar /opt/metabase/metabase.jar > /tmp/metabase_stdout.log 2> /tmp/metabase_error.log &
参考(?)
@yuurelx ひょっとしたらItamaeが悪いかもしれないですね… --log-level debugをつけて実行するとデバッグログが出るんですが何か参考になる情報出力されますでしょうか。
— Ryota Arai (@ryot_a_rai) 2015年4月15日