Upstart log stdout и stderr в файл не работает должным образом

Когда в Bash я могу запустить:

java -jar server.jar &>> log.txt

И это объединяет стандартный вывод и стандартный вывод в log.txt, Однако, когда у меня есть эта линия в моем Upstart .conf файл, он не делает этого:

exec java -jar server.jar &>> log.txt

Я также попытался разделить журналы как:

exec java -jar server.jar >> log.txt 2>> err.txt

И это тоже не работает. Это будет работать, если я сделаю перезапись вместо добавления, например

exec java -jar server.jar > log.txt 2> err.txt

Но это не приемлемо. Это ошибка в Upstart или я что-то недопонимаю? Я использую Ubuntu 14.04.2 LTS, Upstart версии 1.12.1, и я довольно новичок в обоих.

1 ответ

Решение

Не создавайте файл самостоятельно. Позвольте upstart управлять этим, чтобы он записывал как stdout, так и stderr в /var/log/upstart/<service>.log:

console log
exec java -jar server.jar

Если вам нужно изменить путь к каталогу, вы можете использовать --logdir <directory>,

Другие вопросы по тегам