我在**/etc/systemd/sysem/horses.service**
有服务
[Unit]
Description=Description for sample script goes here
After=rc-local.service
[Service]
Type=simple
ExecStart=/opt/horses/startSanic2.sh
TimeoutStartSec=0
Environment="REDIS_HOST=192.168.150.220"
Environment="REDIS_PORT=6379"
[Install]
WantedBy=default.target
它使用以下代码运行shell脚本:
#!/bin/bash
gunicorn horses.server:app --bind 0.0.0.0:9000 --worker-class sanic.worker.GunicornWorker --reload
我成功运行了它,并且可以看到该服务的日志正在写入并且可以从以下位置读取:
journalctl -u horses.service
如果我运行该命令-我可以看到horses.service记录的所有事件。
我对systemd服务的日志没有任何经验。 我非常担心的是,因为此服务将一直运行-例如可以设置将信息(日志)保留在journalctl -u horses.service中,例如仅保留最近10天,或者定义一些回合建议使用日志记录或任何其他方法,以确保日志不会写满,因为我确实希望整个磁盘(分区)写满。 请建议我如何限制日志。
提前谢谢!!!!!!!
答案 0 :(得分:1)
运行journalctl -u
所看到的是应用程序输出到控制台(或错误)的过程,systemd
会为您解决这些问题。
可以在/etc/systemd/journald.conf
上找到全局配置,默认值将为您服务,因此您可以使用默认值。
顺便说一句,以下是可用于更改日志记录行为的配置:
SystemKeepFree
:其他应用程序剩余多少磁盘空间
(默认= 15%)。
SystemMaxuse
:最大磁盘空间使用量(默认= 10%)。
默认情况下,systemd
保留日志尽可能长的时间(受上述规则限制),但是,如果需要基于轮换的配置,则可以使用MaxRetentionSec
。
同样,您不必担心systemd
的磁盘使用情况,只需使用默认配置即可。