
프로세스를 실행하고 충돌이 발생하면 다시 생성하는 간단한 시작 스크립트가 있습니다. 문제는 충돌이 발생하는 경우 사용자에게 충돌이 발생했음을 알리고 싶다는 것입니다(다시 충돌을 방지하기 위해 조치를 취해야 할 수도 있기 때문입니다). 내 스크립트는 다음과 같습니다.
start on runlevel [2345]
stop on runlevel [016]
chdir /opt
respawn
respawn limit 5 10
exec /usr/bin/gulp --gulpfile ./lib/vendor/node/gulpfile.js 2>&1 > /var/log/gulp.log
표준 오류를 콘솔(2>&1)로 리디렉션하고 로그 파일을 표준 출력하는 것은 아닙니다. 로그 파일 리디렉션이 작동합니다. 그러나 콘솔에 대한 표준 오류는 그렇지 않습니다. 이 오류 리디렉션하다쉘에서 직접 명령을 실행하면 작동합니다.
지금까지 시도한 것: - 스크립트에 '콘솔 출력' 추가(출력을 /dev/console로 리디렉션한다고 가정함) - exec start-stop-daemon --start -c myuser --exec 명령 사용(그렇다고 생각함) /dev/console이 다른 곳을 가리키는 sudo를 사용하여 시작 작업을 실행합니다. **이 스크립트는 충돌만 발생하면 실행조차 되지 않습니다.
다른 아이디어가 있나요? 사용자를 위해 콘솔에 오류 출력을 넣어야 합니다.
답변1
생략 2>&1
- 이는 실제로 stderr를 stdout으로 리디렉션합니다. stderr가 콘솔로 이동하기를 원합니다. 이는 stderr의 기본값입니다.
exec /usr/bin/gulp --gulpfile ./lib/vendor/node/gulpfile.js > /var/log/gulp.log