前提・実現したいこと
あるプロセスを実行中かどうかを判断し実行中でない場合(返り値が"0"の時)はthrow new StopExecutionException()
しtask compile
の中の処理をスキップしようとしています。
しかしif文も動作していないしprocess.getText()で取れている値も何かおかしいような気がしています。
該当のソースコード
Groovy
1task compile << { 2 println 'We are doing the compile.' 3} 4 5compile.doFirst { 6 def process = 'ps aux'.execute() | 'grep hogeprocessname'.execute() | 'grep -v grep'.execute() | 'wc -l'.execute() 7 process.waitFor() 8 9 println "getText = ${process.getText()}" //コンソールに0が表示されるがStringではない気がしている 10 assert 0 == process.getText() //コンソールに表示されない 11 12 if (process.getText().equals("0")) { 13 throw new StopExecutionException() 14 } 15}
コンソール
getText = 0
試したこと
def process = 'ps aux | grep "プロセス名" | grep -v grep | wc -l'.execute().waitFor()
のような取り方も試したがこの書き方だとprocess.getText()
の中身が何故か空だった。
コンソールに表示されているgetText = 0
の感じを見るにStringではないような気がしていますが.getText()を使用して取得しているのに何故このようになっているのかわかりません。
申し訳ありませんがご教示いただけると幸いです。よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー