gpt4 book ai didi

ubuntu - Systemd 记录到外部文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:54:28 27 4
gpt4 key购买 nike

我有以下 Systemd 服务脚本来运行 Spring 引导应用程序 -

[Unit]
Description=Upstart for Security
After=network.target network-online.target
Wants=network-online.target

[Service]
User=root
WorkingDirectory=/home/ubuntu/security
ExecStart=/usr/bin/java -classpath java -Dspring.profiles.active=stage -jar /home/ubuntu/security/security-0.0.1-SNAPSHOT.jar > /home/ubuntu/security/security.log 2>&1
SuccessExitStatus=143
Restart=on-failure
RestartSec=120s

[Install]
WantedBy=multi-user.target


我将脚本保存在以下位置 -

 /etc/systemd/system


我运行了以下命令来运行 systemd 服务脚本 -

1. sudo systemctl enable security.service -or- sudo systemctl daemon-reload
2. sudo systemctl status security.service
3. sudo systemctl start security.service


要检查日志,我会触发命令 -

journalctl -u security.service

并使用SHIFT+G 滚动到eof

我可以通过上述步骤检查日志,但我希望它们位于 /home/ubuntu/security 的外部文件中,如 security.log
我怎样才能实现它?我对 systemd 脚本做了哪些更改?

最佳答案

您可以使用系统日志来完成此操作。指示您的 systemd 服务使用标识符将 stdout/stderr 路由到 syslog,并让 syslog 处理写入文件。

[Service]
...
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<your-svc-identifier>

现在在 /etc/rsyslog.d/ 中向 syslog 添加配置

if $programname == '<your-svc-identifier>' then /var/log/<your-svc>.log
if $programname == '<your-svc-identifier>' then stop

重新加载系统日志

$ sudo systemctl restart rsyslog

关于ubuntu - Systemd 记录到外部文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43652836/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com