我正在使用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上运行。