Я использую nohup
команда для запуска приложения веб-сервера Java. Я использую эту команду:
nohup java -jar WEB-SNAPSHOT.jar &
Эта команда создаст nohup.out
и мои журналы сервера хранятся в этом файле. Я хочу, чтобы этот файл был создан на основе даты, т.е. если текущая дата 2017-10-28, файл должен быть создан nohup.2017-10-28.out
и когда дата станет 2017-10-29 12:00 nohup.2017-10-29.out
файл должен создаваться автоматически и так далее. Пример:
DATE | File
|
2017-10-28 | nohup.2017-10-28.out
2017-10-29 | nohup.2017-10-29.out
2017-10-30 | nohup.2017-10-30.out
Вы можете просто перенаправить вывод в файл.
nohup java -jar WEB-SNAPSHOT.jar > nohup.$(date --iso).out
Если вы перенаправляете, nohup
не будет создавать файл по умолчанию, но будет использовать файл, указанный с перенаправлением.
Я тоже думаю, что вам не нужен &
в конце вашей команды.
Если цель состоит в том, чтобы фоновый процесс и регистрировать его стандартный вывод в файл, есть больше функций, доступных, если вы реализуете его как службу.
Создать служба systemd который запускает команду, похожую на ExecStart=/usr/bin/java -jar /opt/app/WEB-SNAPSHOT.tar
Также установите его для входа в уникальное место назначения системного журнала, как описано в systemd.exec
StandardOutput=syslog
SyslogIdentifier=app
SyslogFacility=local6
Настройте syslog для записи этого объекта в отдельный файл, например /var/log/app.log
Настройте /etc/logrotate.d/app для поворота файла. При необходимости используйте скрипты dateformat и postrotate.
/var/log/app.log