Назад | Перейти на главную страницу

Разделение java stdout и stderr с помощью systemd и без заполнения журнала

Я запускаю java-приложения через systemd:

[Unit]
Description=test service

[Service]
Type=simple
EnvironmentFile=/etc/sysconfig/testserver
WorkingDirectory=/opt/testserver
ExecStart=/usr/bin/java -jar /opt/testserver/test.jar
StandardOutput=syslog
StandardError=syslog
User=testserver
Group=testserver
SyslogIdentifier=testserver

[Install]
WantedBy=multi-user.target

я хочу получить stdout в /opt/testserver/stdout.log и stderr в /opt/testserver/stderr.log - допустимы любые варианты работы (т.е. если возможно syslog). Если возможно, я хочу избежать записи хотя бы одного из них в журнал journald.

Спасибо...

Я пытаюсь выполнить следующее для Logstash, чтобы заменить его сценарий init.d. По сути, оборачивание его с помощью bash для обеспечения перенаправления stdout и stderr. Не уверен, что это именно то, что вы хотите или хотите использовать (это не слишком ужасно, но явно не так, как systemd хочет, чтобы вы это делали), но мне нужно было что-то, чтобы оно началось после Elasticsearch, и я не хотел моя команда, чтобы заметить что-либо другое о том, где оказались файлы журнала, так что, надеюсь, это поможет мне, пока они предоставить один из своих:

[Unit]
Description=Logstash
After=elasticsearch.service
Requires=elasticsearch.service

[Service]
Type=simple
User=logstash
Group=logstash
ExecStart=/bin/bash -c 'exec /opt/logstash/bin/logstash agent \
    -f /etc/logstash/conf.d \
    -l /var/log/logstash/logstash.log \
    >/var/log/logstash/logstash.stdout \
    2>/var/log/logstash/logstash.err'
WorkingDirectory=/var/lib/logstash
LimitNICE=19
LimitNOFILE=16384
Restart=always

[Install]
WantedBy=multi-user.target 

Изменить: я только что понял, что могу создать /etc/systemd/system/logstash.service.d/after-es.conf следующим образом, и не нужно переписывать их сценарий init.d:

[Unit]
After=elasticsearch.service
Requires=elasticsearch.service

Ну что ж, оставим вышесказанное на случай, если это будет полезно.