Process proc1 ='sh -c ps -ef'.execute();
Process proc2 ='sh -c grep sleep.sh '.execute();
Process proc3 ='sh -c grep -v grep '.execute();
Process proc4 ='sh -c awk sleep.sh '.execute();
Process all = proc1 | proc2 | proc3 | proc4;
// I tried this too and this didnt work
//println([ 'sh', '-c', 'ps -ef | grep "sleep.sh" | grep -v "grep" | awk "sleep.groovy" ' ].execute().text)
//also tried without the awk
println all.text;
좋아요. 그럼 내가하려는 것은 ps 쉘 스크립트입니다 (sleep.sh). 시각]. 어떻게하는지 잘 모르겠습니다. 이것은 나의 추측 ^^이었다Groovy 프로세스가 Linux 쉘 (grep 및 awk 및 ps)에서 작동하지 않습니다.
결과 :
는-sh-3.2$ ./callGroovy.sh testSleep.groovy
-sh-3.2$
나던 인쇄 아무것도 출력 및 i는 파이프 명령을 실행하는 경우 을 (callGroovy 내가 내 그루비 스크립트를 호출하는 데 사용하는 쉘 스크립트) 나에게 아무것도주지 나던 그들은 AWK 내가 잘못 AWK를하고있는 중이 야 생각 제외하고는 여전히 작동 을 heres 나머지는 파이프
-sh-3.2$ ps -ef | grep "sleep.sh" | grep -v "grep"
wasadmin ***** ***** 0 **:** pts/1 **:**:** /bin/bash ./sleep.sh
(모든 * 숫자 곳)
그냥 grep과 ps로 스크립트를 해보면 나에게도이 결과를 알려주지 않습니다. 어떤 제안? ..PS 또한 그루비 스크립트에서 따옴표를 사용하거나 사용하지 않으려 고 노력했습니다. didnt는 그것이 차이를 만들 것이라고 생각한다. 그러나 가치가있다.
과 표준 에러 스트림을 읽고 도움이 될 수있다 '{에 println $ 2}' 그리고 그것은 그루비 구문으로 멋지게 연주하지 못했습니다. 하지만 그루비와 함께 멋지게 바꾸는 방법을 모르겠습니다. (비교적 Groovy를 처음 사용하는 경우) – Ian
스크립트에 프로세스 ID가 무엇인지 알고 싶습니까? 스크립트가 성취하고자하는 것을 명시 적으로 언급 한 경우 가장 좋을 것입니다. –
예. 나는 sleep.sh의 pid를 알고 싶습니다. – Ian