首先提供一个java启动的程序做成 systemd 的简单示例,以及journal配置日志持久化的示例
后面会有详细的systemd及journal使用指南
示例:详细配置见后文,unit文件字段详解
unit示例
[Unit]
After=network.target
Wants=network.target
[Service]
WorkingDirectory=/export/prod/server
Type=simple
ExecStart=/usr/bin/java -jar -Dspring.config.location=application.properties -Dlog4j2.formatMsgNoLookups=true server.jar
Restart=on-failure
RestartSec=1s
[Install]
WantedBy=multi-user.target
需要注意的:
WorkingDirectory=指定服务的工作目录
因为启动指定的application.properties 配置文件的时候没有用绝对路径,所以就要指定工作目录
RestartSec=Systemd 重启当前服务间隔的秒数,缺省是10ms,这里改成了1s
日志是归journal管,首先必须要持久化存储到磁盘
默认情况下,systemd 的日志保存在 /run/log/journal 中,系统重启会清除掉。
修改journal存储模式
sed -i "/^#Storage/cStorage=persistent" /etc/systemd/journald.conf
处理所需要的目录及重启服务
创建目录及重启服务
mkdir /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
systemctl restart systemd-journald
把内存文件刷到磁盘
内存文件刷到磁盘
journalctl --flush
设置保存天数
设置保存天数
journalctl --vacuum-time=31d
按日期输出日志
按日期输出日志
journalctl -u circle --since "2022-10-19 14:30:00" --until "2022-10-19 15:00:00"
以上示例完毕。
————————————————
版权声明:本文为CSDN博主「weixin_46752797」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46752797/article/details/128850504