首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux日志不与systemctl状态/ journalctl同步

Linux日志不与systemctl状态/ journalctl同步
EN

Server Fault用户
提问于 2019-11-26 12:44:57
回答 1查看 3.1K关注 0票数 1

我正在运行我的自定义服务,让我们称之为"foo.service“。这是一个古巨蟒的过程,它记录了一些事情。

我以前可以使用journalctl -u <service> -f获得实时日志概述,但现在日志似乎被一些过去的日志卡住了。但是,当我使用systemctl status <service>时,它确实显示了最新的日志。所以我的日志记录是有效的,但是日志似乎被卡住了,没有显示任何更新。

示例:

journalctl -u foo.service -f

代码语言:javascript
复制
Nov 25 16:19:09 <name> systemd[1]: Started Instance to load up the program and its endpoints.
Nov 25 16:19:09 <name> gunicorn[28267]: 2019-11-25 16:19:09,844 [INFO]: Connecting to localhost:9773
Nov 25 16:19:09 <name> gunicorn[28267]: 2019-11-25 16:19:09,845 [INFO]: Connecting to localhost:9771
Nov 25 16:19:09 <name> gunicorn[28267]: 2019-11-25 16:19:09,846 [INFO]: Connected
Nov 25 16:19:09 <name> gunicorn[28267]: 2019-11-25 16:19:09,846 [INFO]: Connected

systemctl状态foo.service

代码语言:javascript
复制
Nov 26 11:39:53 <name> systemd[1]: Started Instance to load up the program and its endpoints.
Nov 26 11:39:53 <name> gunicorn[29117]: 2019-11-26 11:39:53,458 [INFO]: Connecting to localhost:9773
Nov 26 11:39:53 <name> gunicorn[29117]: 2019-11-26 11:39:53,459 [INFO]: Connecting to localhost:9771
Nov 26 11:39:53 <name> gunicorn[29117]: 2019-11-26 11:39:53,460 [INFO]: Connected
Nov 26 11:39:53 <name> gunicorn[29117]: 2019-11-26 11:39:53,460 [INFO]: Connected

后者是刚刚创建的日志,所以工作起来很有魅力,但据我理解,journalctl似乎也被更新了。这在过去确实有效,我从前天起就遇到了这些问题。

我试着重新开始写日记,但这似乎行不通。

提前谢谢。

编辑:当我重新启动服务时,当我查看systemctl服务的状态时,我注意到gunicorn抛出了一个异常,我无法向上滚动,因此我不知道错误的原因是什么(systemctl状态):

代码语言:javascript
复制
Nov 26 15:08:27 <name> gunicorn[29390]:     self.log.info("Shutting down: %s", self.master_name)
Nov 26 15:08:27 <name> gunicorn[29390]:   File "/opt/my-program/venv/lib/python3.5/site-packages/gunicorn/glogging.py", line 271, in info
Nov 26 15:08:27 <name> gunicorn[29390]:     self.error_log.info(msg, *args, **kwargs)
Nov 26 15:08:27 <name> gunicorn[29390]: Message: 'Shutting down: %s'
Nov 26 15:08:27 <name> gunicorn[29390]: Arguments: ('Master',)
Nov 26 15:08:27 <name> systemd[1]: Started Instance to load up the program and its endpoints.

我的foo.service配置文件:

代码语言:javascript
复制
[Unit]
Description=Instance to load up the program and its endpoints
After=network.target

[Service]
User=root
Group=www-data
WorkingDirectory=/opt/my-program/my-program-thing
Environment="PATH=/opt/my-program/venv/bin"
ExecStart=/opt/my-program/venv/bin/gunicorn --workers 1 --threads 12 --bind unix:foo.sock -m 007 app:app --bind 0.0.0.0:8085 --access-logfile '/var/log/foo.info.log' --error-logfile '/var/log/foo.err.log'
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-11-26 13:41:29

尝试将这些行添加到服务标记下的服务文件中

StandardOutput=journal StandardError=journal

然后执行systemctl守护进程重新加载,然后执行systemctl重新启动your_service.service。

我编辑答案,让其他人容易看到它。问题在于/var文件系统上缺乏空间,所以日志无法保存到磁盘并在之后读取,这就是systemctl状态和-fu之间存在差异的原因。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/993332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档