Ani*_*aje 3 ubuntu systemd ubuntu-16.04
我有以下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
Run Code Online (Sandbox Code Playgroud)
我将脚本保存在以下位置 -
/etc/systemd/system
Run Code Online (Sandbox Code Playgroud)
我运行以下命令来运行systemd服务脚本 -
1. sudo systemctl enable security.service -or- sudo systemctl daemon-reload
2. sudo systemctl status security.service
3. sudo systemctl start security.service
Run Code Online (Sandbox Code Playgroud)
要检查日志,我发出命令 -
journalctl -u security.service
Run Code Online (Sandbox Code Playgroud)
并用于SHIFT+G滚动到eof
我可以通过上面的步骤检查日志,但是我希望它们位于/ home/ubuntu/security中的外部文件中,作为security.log
如何实现它?我在系统脚本中做了哪些更改?
小智 7
您可以使用syslog来完成此任务.指示您的systemd服务使用标识符将stdout/stderr路由到syslog,并让syslog处理写入文件.
[Service]
...
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<your-svc-identifier>
Run Code Online (Sandbox Code Playgroud)
现在在syslog中添加一个配置 /etc/rsyslog.d/
if $programname == '<your-svc-identifier>' then /var/log/<your-svc>.log
if $programname == '<your-svc-identifier>' then stop
Run Code Online (Sandbox Code Playgroud)
重新加载syslog
$ sudo systemctl restart rsyslog
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3298 次 |
| 最近记录: |