마지막 질문에 더하여 나는 지금 사용하고 logger
있습니다.
다음과 같은 시작 구성이 있습니다.
start on runlevel [2345]
stop on runlevel [06]
respawn
pre-start script
exec 2>&1 > >(logger -t "nodejs")
REPO=git@github.com
mkdir -p /var/log
mkdir -p /var/www
echo "Fetching app from $REPO"
girror $REPO /var/www
if [ -f /var/www/package.json ]; then
echo "Installing npm modules"
cd /var/www
npm install
fi
end script
post-stop script
exec 2>&1 > >(logger -t "nodejs")
echo "stopped"
end script
script
exec 2>&1 > >(logger -t "nodejs")
export NODE_ENV=production
export port=80
echo "Starting app.js on port 80"
cd /var/www
node app.js
end script
오류가 발생합니다
/proc/self/fd/9: 2: /proc/self/fd/9: Syntax error: redirection unexpected
나는 그것이 줄인 것 같아
exec 2>&1 > >(logger -t "nodejs")
일반 쉘 스크립트에서 실행했을 때 작동했지만.
무슨 일인지 알지?
@devnull upstart가 어떻게 스크립트를 실행하는지 잘 모르겠습니다. 어떤 식 으로든 bash를 사용하도록 강요 할 수 있습니까? 나는 그것이
—
Michael
/bin/sh
실제로 가리키는 것을 본다dash
sh
입니까? 그렇다면 오류가 발생할 수 있습니다. 를 사용하여 스크립트를 실행하십시오bash
.