예: weblogic을 시작한 다음(계속 실행됨) 배포하는 작업 쉘 스크립트가 있습니다.
마지막으로 쉘 스크립트가 종료되지 않도록 백그라운드 프로세스를 다시 포그라운드로 가져옵니다(코드 0으로 종료).
#!/bin/bash
set -m
startWebLogic.sh &
# create resources in weblogic
# deploy war
# ...
jobs -l
fg %1
작업 제어를 허용하려면 를 사용해야 했지만 set -m
이것이 비대화형 셸에서 사용하는 가장 깔끔한 방법은 아니라는 사실도 발견했습니다.
이 문제를 처리하는 더 좋은 방법이 있나요?
답변1
내가 찾고 있는 문제를 이해하는 한 wait
:
#!/bin/bash
startWebLogic.sh &
# create resources in weblogic
# deploy war
# ...
wait
"프로세스를 전면으로 가져오지" 않습니다. 그러나 weblogic이 반환될 때까지 기다립니다. 따라서 weblogic이 종료될 때까지 쉘 스크립트는 종료되지 않습니다. 이것이 당신이 달성한 것입니다 fg %1
.
에서 help wait
:
ID(프로세스 ID 또는 작업 사양일 수 있음)로 식별되는 각 프로세스를 기다리고 해당 프로세스의 종료 상태를 보고합니다. ID가 제공되지 않으면 현재 활성화된 모든 하위 프로세스가 대기되고 상태 0이 반환됩니다.