2

У меня есть простой сценарий запуска, который запускает процесс и вызывает его в случае сбоя. Проблема заключается в том, что в случае сбоя я хочу, чтобы пользователь был предупрежден о том, что произошел сбой (поскольку ему может потребоваться принять меры, чтобы предотвратить его повторный сбой). Вот мой сценарий:

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 (думая, что потому что Я запускаю выскочившее задание с помощью sudo точки /dev /console где-то еще) ** этот скрипт просто падает, даже не запускается

Есть другие идеи? Мне действительно нужно выводить сообщения об ошибках в консоль для пользователя.

1 ответ1

0

Опустите 2>&1 - это фактически перенаправляет stderr в stdout. Вы хотите, чтобы stderr шел в консоль - по умолчанию для stderr.

exec /usr/bin/gulp --gulpfile ./lib/vendor/node/gulpfile.js > /var/log/gulp.log

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .