¿Secuencia de comandos advenediza que muestra errores en la consola?

¿Secuencia de comandos advenediza que muestra errores en la consola?

Tengo un script de inicio simple que ejecuta un proceso y lo reaparece si falla. El problema es que si falla, quiero que se avise al usuario de que falló (porque es posible que deba tomar alguna medida para evitar que vuelva a fallar). Aquí está mi guión:

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

No es que redirija el error estándar a la consola (2>&1) y genere un archivo de registro. La redirección del archivo de registro FUNCIONA. Pero el error estándar de la consola NO. Esta redirección de errorhacefunciona si ejecuto el comando directamente desde el shell.

Cosas que he probado hasta ahora: - Agregar 'salida de consola' al script (que supuestamente redirige la salida a /dev/console) - Usar el comando exec start-stop-daemon --start -c myuser --exec (pensando eso porque Ejecuto el trabajo inicial con sudo los puntos /dev/console en otro lugar) **este script simplemente falla y ni siquiera se ejecuta

¿Alguna otra idea? Realmente necesito que la salida de error se coloque en la consola para el usuario.

Respuesta1

Omita el 2>&1: esto en realidad redirige stderr a stdout. Quieres que stderr vaya a la consola, que es el valor predeterminado para stderr.

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

información relacionada