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>
,