crontab的启动环境

上周犯了一个低级的错误,没有在crontab的启动脚本中加上用户设置的环境变量,导致启动服务出现中文乱码。

我们centos服务器上部署了几个tomcat服务,为了防止tomcat挂掉,我写了一个重启脚本,监控几个tomcat的端口是不是还在,如果不在则启动该tomcat。其中有一个监控脚本中没有加如下内容:

. /etc/profile
. ~/.bash_profile

意思是加载系统和当前用户的环境变量

结果我的tomcat挂掉了,crontab重启后编码格式变成了系统默认的而不再是UTF-8,导致服务中文乱码。
当然我的tomcat也没有配置好,如果在catalina.sh中配置如下也可避免:

CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8"

你可能感兴趣的:(Linux)