source之后需要重启mysql服务吗_每次重启电脑或服务都需要 source 才能使一部分配置生效....

今天遇到个问题就是每次重启 es 服务或重启电脑都需要 source 才能使一部分配置生效.

一致很懵在另一台电脑上并没有问题,一开始以为可能系统版本不一致,centos 6.5 可能有特定的配置但是一番百度后发现并没有,而且通过同事电脑测试了,也没有这个问题。后来根据网上一片帖子讲述了他在一次 java 环境变量配置后重启失效的问题,说是因为有别的软件覆盖了他的环境变量。

根据这个思路查询启动时的执行的各个脚本最终发现了 es 的我的启动脚本中向/.bashrc 文件写入的一段用于初始化时同步时钟,并调用了一个更新配置 ik 插件的脚本。这段中修改了 profile 文件中的配置如果遇到更新就会复写。修改后并没有解决。随后疑心大起一度怀疑那段代码或配置或曾经用过的(特别时百度复制的脚本)中有问题。随后停下所有服务,一个个挨个启动检查,结果很悲催没有发现任何地方有问题。

第今儿下班后,不死心,有从头走了一遍。每次重启使用了 su 指定了用户,怀疑是不是用户问题之后把 es,mysql 等几个服务的用户改为 root 并重新配置环境变量后好了,至此可以确定原因肯定与不同用户有关。按照这个方向查找资料如下发现了不同方式读取加载不同。

图形模式登录时,顺序读取:/etc/profile 和~/.profile

图形模式登录后,打开终端时,顺序读取:/etc/bash.bashrc 和~/.bashrc

文本模式登录时,顺序读取:/etc/bash.bashrc,/etc/profile 和~/.bash_profile

从其它用户 su 到该用户,则分两种情况:

(1)如果带-l 参数(或-参数,--login 参数),如:su -l username,则 bash 是 lonin 的,它将顺序读取以下配置文件:/etc/bash.bashrc,/etc/profile 和~ /.bash_profile。

(2)如果没有带-l 参数,则 bash 是 non-login 的,它将顺序读取:/etc/bash.bashrc 和~/.bashrc

注销时,或退出 su 登录的用户,如果是 longin 方式,那么 bash 会读取:~/.bash_logout

执行自定义的 shell 文件时,若使用“bash -l a.sh”的方式,则 bash 会读取行:/etc/profile 和~/.bash_profile,若使用其它方式,如:bash a.sh, ./a.sh,sh a.sh(这个不属于 bash shell),则不会读取上面的任何文件。

上面的例子凡是读取到~/.bash_profile 的,若该文件不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。

分析应该是因为我所有环境变量配置的都是用户的,但是切换用户时会重新读取加载,有时通过终端,有时通过图形界面,不同用户操作引发的。

记录下,留以订正理解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值