내 rc.local에 다음 줄이 있습니다
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
if [ -f /resize ]
then
if [ -f /resize2 ]
then
sh /resize2
else
sh /resize
fi
fi
/etc/rc --foreground
/sbin/iptables-restore /etc/iptables
mkdir /tmp/cooks
mkdir /tmp/cook
chmod 777 /tmp/cook
chmod 777 /tmp/cooks
mkdir /tmp/xhprof
chmod 777 /tmp/xhprof
exit 0
그러나 시스템 시작 시 nor /tmp/cooks
도 /tmp/cook
dir도 생성되지 않습니다. /tmp/xhprof
나는 그것을 사용하고 있다Debian GNU/Linux 6.0 squeeze (VPS)
답변1
스크립트는 #!/bin/sh -e
. 이 -e
옵션은 명령이 0이 아닌 상태를 반환하는 경우 쉘이 종료됨을 의미합니다. 명령 중 하나가 실패했을 수 있습니다. 어쩌면 /resize
또는 /resize2
0이 아닌 값을 반환하거나 어쩌면 /etc/rc
또는 을 반환합니다 iptables-restore
. Shebang 줄을 다음으로 변경 #!/bin/sh -ex
하고 스크립트를 실행하면 실행되는 명령의 추적을 볼 수 있습니다.
명령 중 하나가 성공해야 할 때 0이 아닌 값을 반환하는 경우 이를 수정하세요. 0이 아닌 값을 합법적으로 반환하는 명령 중 하나를 찾으면 || true
그 명령 뒤에 추가하십시오. 명령의 반환 상태에 관심이 없다면 해당 명령을 제거하십시오 -e
.