![aix ksh는 nohup.out 없이 weblogic 서버를 시작하고 기본 스크립트를 반환합니다.](https://linux55.com/image/40220/aix%20ksh%EB%8A%94%20nohup.out%20%EC%97%86%EC%9D%B4%20weblogic%20%EC%84%9C%EB%B2%84%EB%A5%BC%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B3%A0%20%EA%B8%B0%EB%B3%B8%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EB%B0%98%ED%99%98%ED%95%A9%EB%8B%88%EB%8B%A4..png)
나는 백그라운드에서 weblogic 서버를 시작하고 다음과 같이 즉시 기본 스크립트로 돌아가려는(계속 스크립트 실행) ksh 스크립트를 작성하고 있습니다.
nohup path_to_domain_bin/startWebLogic.sh>/dev/null < /dev/null 2>&1
하지만 nohup 명령 후에 내 스크립트가 중단됩니다. 내가 원하는 작업을 수행하는 올바른 방법은 무엇입니까?
nohup.out을 제거하고 싶습니다.
저는 이것을 AIX 7.1에서 실행하고 있습니다.
답변1
백그라운드 작업으로 명령을 시작하고 &
마지막으로 다음을 수행합니다.
nohup path_to_domain_bin/startWebLogic.sh>/dev/null < /dev/null 2>&1 &
아시다시피 출력 리디렉션은 nohup
어쨌든 출력이 리디렉션되므로 별로 도움이 되지 않습니다. 이 문제를 제거하려면 앞으로 건너뛰고 nohup
스크립트에서 수행하는 작업을 수행하십시오(기본 부분 대신).
trap "" 1 # catch hangup signal
path_to_domain_bin/startWebLogic.sh>/dev/null < /dev/null 2>&1 &
하지만 호출 프로그램이 제공할 수 있는 정보를 완전히 폐기하는 것에 대해 불안한 느낌이 듭니다. 이렇게 하면 잘못된 경로 이름이 호출되어도 오류가 발생하지 않습니다!
나는 일반적으로 다음과 같은 몇 가지 추가 정보를 포함하여 이러한 출력을 로그 파일에 추가합니다.
(
LOGFILE=/var/log/weblogic_start.log
trap "" 1 # catch hangup signal
exec 1>> $LOGFILE # redirect output a bit more readably
exec 2>> $LOGFILE
exec < /dev/null
path_to_domain_bin/startWebLogic.sh &
date "+%Y%m%d:%H%M%S weblogic started with PID $!"
)
리디렉션 exec
은 더 읽기 쉽고 IMO는 스크립트에서도 성과를 거두며 date
통화가 리디렉션됩니다. 서브셸에서 이 명령을 실행하면 (...)
리디렉션의 효과가 스크립트의 이 부분에 유지됩니다.