systemd服务将stdout重定向到自定义文件名



我正在使用systemd服务来启动应用程序。应将标准输出重定向到包含当前日期(服务启动时(的文件。登录到文件很好,但是,我不知道如何在服务中提供文件名的日期。有什么想法吗?

...
[Service]
ExecStart=/bin/mybin
StandardOutput=file:/my/path/<filename should contain date>.log
...

systemd无法动态生成文件名。但是您可以使用bash重定向和date来创建这样的日志文件。

[Service]
ExecStart=/bin/bash -c "/bin/mybin >/my/path/filename-$(date %%y-%%d-%%m).log"

我有同样的需求,我找到了一个很好的解决方案。它运行良好。希望它也能帮助你。

1.创建一个脚本

您必须将脚本放在/usr/bin下。对我来说是/usr/bin/ruoyi-gen.sh

2.添加以下内容

#!/bin/bash
java -jar /root/xf-service/ruoyi-modules-gen-2.3.0.jar > /root/xf-service/ilogs/modules-gen-`date "+%Y-%m-%d"`.log 2>&1 &

使脚本可执行->chmod +x /usr/bin/ruoyi-gen.sh

3.添加服务描述

运行vi /etc/systemd/system/ruoyi-gen.service,添加如下描述:

[Unit]
Description=ruoyi-gen
[Service]
Type=forking
ExecStart=/usr/bin/ruoyi-gen.sh
[Install]
WantedBy=multi-user.target

4.重新加载所有系统服务文件

systemctl daemon-reload

5.启动您的服务

systemctl start ruoyi-gen

它可以在CentOS 7上运行。

相关内容

  • 没有找到相关文章

最新更新