init.d
서버에서 실행되는 여러 서비스를 제어하기 위해 스크립트를 직접 작성하려고 합니다 Linux
. 나는 다음과 같은 내용을 온라인에서 보았습니다.
nohup $EXEC_SCRIPT 0<&- &> $LOG_FILE & echo $! > $PID_FILE
내가 이해하는 한도에서는:
nohup
캡처hangup
신호$EXEC_SCRIPT
실행할 명령을 포함하는 변수입니다.0<&- &>
이전에 이런 일이 발생하지 않았습니다.$LOG_FILE
$EXEC_SCRIPT
로그 파일 경로 와 유사 하지만 포함&
$LOG_FILE
백그라운드에서 로그인을 시작하시겠습니까?$!
마지막 백그라운드 명령의 PID입니다.>
$!
결과 쓰기$PID_FILE
이 지식을 사용하여 문제를 해결할 수 있지만 0<&- &>
완전히 당황스럽습니다. 나는 애초에 적어도 부분적으로 이해하지 못하는 내용을 포함하는 것을 좋아하지 않습니다.
답변1
리디렉션입니다.
0<&-
파일 설명자 0(표준 입력)을 닫습니다.&>
stdout 및 stderr 리디렉션(이 경우 로그 파일로)
echo
확실히 전에는 그런 적이 없었나요 $!
? $!
명령으로 해석되며 다음과 같은 결과가 발생할 가능성이 높습니다.
-bash: 18552: command not found
답변2
&<- 파일 설명자를 닫습니다. 그러나 더 근본적으로, 작은 "&" 원자를 인터넷에서 검색하는 것은 고통스러울 수 있습니다! 바라보다이 웹사이트배경 정보에 대한 bash 리디렉션 정보.