On Fri, Nov 5, 2021 at 2:16 PM Simon Matter simon.matter@invoca.ch wrote:
Hi,
Hi,
I am running CentOS Linux release 7.9.2009 (Core). I have created a systemd service for a java service. I want to capture both stdout and stderr to files under /var/log directory. # cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) # # rpm -qa | grep systemd systemd-sysv-219-78.el7_9.3.x86_64 systemd-libs-219-78.el7_9.3.x86_64 systemd-219-78.el7_9.3.x86_64
# cat /etc/systemd/system/smartresponse.service [Unit] Description=Smart Response Service
[Service] WorkingDirectory=/opt/demo ExecStart=/bin/java -jar old2-wsb-smart-response-0.0.2-SNAPSHOT.jar Type=simple Restart=on-failure RestartSec=10 StandardOutput=file:/var/log/smartresponseserviceoutput.log StandardError=file:/var/log/smartresponseserviceerror.log
[Install] WantedBy=multi-user.target #
The files /var/log/smartresponseserviceoutput.log and /var/log/smartresponseserviceoutput.log are not created. Please guide.
I think the "file:" method is not supported with your version of systemd. See `man systemd.exec' for more info.
You could use a shell script to work around this limitation, something like
--%<--- #!/bin/bash
exec java -jar old2-wsb-smart-response-0.0.2-SNAPSHOT.jar >> /var/log/smartresponseserviceoutput.log 2>> /var/log/smartresponseserviceerror.log --%<---
Regards, Simon
Thanks Simon. It worked like a charm.