自己编写Java程序,注册为Linux Service服务,通过 service xxx start 启动后,发现日志文件中文乱码,如果不使用服务启动,则没有乱码。

出现此问题可能是系统环境变量设置不正确,也可能是服务启动工具没有添加中文的设置,最终的结果导致以服务形式启动的程序输出的日志文件乱码,在操作系统本身支持中文的情况下 排查方法如下:

1、首先查看自己系统中环境变量LANG的设置

使用命令:echo $LANG,如下所示

[root@localhost data]# echo $LANG

zh_CN.UTF-8

如果输出的不是以上的结果,则需要在 系统 profile文件中进行设置,步骤如下:

vim /etc/profile

在文件最后写入:

export LANG=zh_CN.UTF-8

保存后,重新加载 profile文件:source /etc/profile,重新查看LANG设置即可看到UTF-8设置。

2、查看服务启动工具对环境变量的使用

使用命令 :grep env /sbin/service

将LANG="$LANG" 配置在env -i 后面,最后的结果如下所示,操作过程:

编辑service文件

vim /sbin/service

在env -i 后面加上 LANG="$LANG"  。

添加后  重启操作系统

重新运行服务即可解决 日志文件乱码的问题。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐