최근에 우분투 시작과 관련된 문제가 발생하여 Bash 셸에 갇혔습니다.
우분투 12.04를 사용하고 있습니다. 시작 스크립트(/etc/init/player.conf)는 다음과 같습니다.
start on (local-filesystems and runlevel [2345])
stop on runlevel [06]
script
/tmp/test.sh
end script
예 /tmp/test.sh
:
#!/bin/bash
TOKEN="token"
TOKEN_FILE="/tmp/token"
OUTPUT_FILE="/tmp/test_exit"
func()
{
grep "$TOKEN" "$TOKEN_FILE"; echo $? >> "$OUTPUT_FILE"; exit 0
}
trap 'trap "" INT TERM QUIT EXIT; func' INT TERM QUIT EXIT
rm -f "$OUTPUT_FILE"
echo "$TOKEN" > "$TOKEN_FILE"
grep "$TOKEN" "$TOKEN_FILE"; echo $? >> "$OUTPUT_FILE";
sleep 1000
exit 0
테스트 프로그램:
$sudo service player start
$sudo service player stop
$cat /tmp/test_exit
0
2
내 질문은 파일(/tmp/token)이 변경되지 않았고 grep이 해당 파일("/tmp/token")에서 문자열("token")을 찾아야 하기 때문에 두 번째 결과가 2인 이유입니다.