teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

正しい処理ではなかったので修正

2020/05/29 15:53

投稿

YT0014
YT0014

スコア1819

answer CHANGED
@@ -15,4 +15,22 @@
15
15
 
16
16
  なお、申し訳ないのですが、上記コードは未検証です。
17
17
 
18
- [Groovy Documents](https://docs.groovy-lang.org/latest/html/groovy-jdk/java/lang/package-summary.html)
18
+ [Groovy Documents](https://docs.groovy-lang.org/latest/html/groovy-jdk/java/lang/package-summary.html)
19
+
20
+ 追記:検証結果を受けて
21
+ 色々試してもらった結果、以下のコードで、ご要望の処理が行えそうです。
22
+
23
+ ```Groovy
24
+ compile.doFirst {
25
+ def process = 'ps aux'.execute() | 'grep プロセス名'.execute() | 'grep -v grep'.execute() | 'wc -l'.execute()
26
+
27
+ def result = process.getText()
28
+
29
+ if (result.equals("0")) {
30
+ throw new StopExecutionException()
31
+ }
32
+ }
33
+ ```
34
+ ドキュメントからは読み取れなかったのですが、getText()は、呼び出す度に値が変わる可能性が高いので、呼出しは1度だけ。
35
+ 文字列の比較なので、equals()を用いる。
36
+ 呼出し処理に掛かる時間が十分短いか、getText()で処理待ちをしているかしているようなので、waitForOrKill()は不要と思われます。