aix ksh는 nohup.out 없이 weblogic 서버를 시작하고 기본 스크립트를 반환합니다.

aix ksh는 nohup.out 없이 weblogic 서버를 시작하고 기본 스크립트를 반환합니다.

나는 백그라운드에서 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통화가 리디렉션됩니다. 서브셸에서 이 명령을 실행하면 (...)리디렉션의 효과가 스크립트의 이 부분에 유지됩니다.

관련 정보