You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在journalctl日志行中显示应用名称而非进程ID

如何在journalctl日志行中显示应用名称而非进程ID

嗨,我来帮你搞定这个问题!你看到的app[194430]里的数字是进程ID(PID),前面的app是进程的可执行文件名,而不是你实际的服务名app_1或app_2。要显示服务名称,有两个实用的思路:

一、临时调整journalctl输出格式(快速查看)

如果只是临时排查想看到服务名,不用改配置,直接给journalctl指定合适的输出格式就行:

  • 用short-full格式,它会在日志行开头显示完整的服务单元名:
    journalctl -u app_1 -u app_2 -f -o short-full
    
    调整后你会看到类似这样的日志行:

    Jun 07 12:29:31 server app_1.service[194430]: 2024-06-07T12:29:31.257154Z ERROR custom_error

  • 要是想看到更详细的元数据(包括服务单元、PID、日志级别等所有字段),可以用pretty格式:
    journalctl -u app_1 -u app_2 -f -o pretty
    
    这个格式会把每个日志条目拆分成清晰的字段展示,一眼就能找到UNIT对应的服务名。

二、修改服务配置(长期解决)

如果希望以后所有日志都默认显示正确的服务名,而不是依赖输出格式,可以修改你的systemd服务文件(比如app_1.service和app_2.service):

  1. 打开对应的服务文件,找到[Service]段
  2. 添加SyslogIdentifier参数,指定你想显示的服务名:
    [Service]
    SyslogIdentifier=app_1
    
  3. 重新加载systemd配置并重启服务:
    systemctl daemon-reload
    systemctl restart app_1 app_2
    
    之后再用journalctl -u app_1 -u app_2 -f查看,日志里就会直接显示app_1而不是app[PID]啦。

简单来说,第一种方法适合临时查日志时用,第二种是一劳永逸的方案,根据你的需求选就好~

备注:内容来源于stack exchange,提问作者Fred Hors

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 11:38:04