今天在虚拟机搭建zookeeper环境,结果死活运行不起来,唯一的信息只有out文件里“没有java命令”这一个提示,找来找去发现是找不到java运行环境。可是很奇怪,明明我已经配置了,而且在终端执行java -version是有信息的,可是在 zkServer.sh 和 zkEnv.sh 中 echo $JAVA_HOME 确实为空。后来百读到了答案:

https://blog.csdn.net/m0_38086372/article/details/88542909

=====================================================================================================

原因
sudo命令会重置环境变量,查看文件/etc/sudoers,可以看到这样的配置
Defaults env_reset
1
解决方法
第一种,也是最简单的,使用sudo -E来代替sudo即可保留当前用户的环境变量,但缺点也很明显,每次都要加

第二种方式:修改/etc/sudoers文件,将Defaults env_reset改为 Defaults !env_reset,这样以后使用sudo就再也不会重置环境变量了

需要注意的是`/etc/sudoers`是只读文件,vim不能更改,要使用`visudo`命令(不用加文件名)来更改内容
1
不过大部分环境变量我们一般都用不着,这种情况就可以在配置中添加env_keep,来使指定的几个环境变量保持不变

具体的做法是在 /etc/sudoers中添加语句 Defaults env_keep += "env1 env2" ,这样环境变量env1 和env2就可以在sudo执行时保留原来的值
不过既然/etc/sudoers是个只读文件,就不是用来让我们改来改去的;还除了它,我们还可以在目录/etc/sudoers.d/下随便创建文件,写入 Defaults env_keep += "env1 env2",效果和在/etc/sudoers中是一样的,也更加方便删除和修改
---------------------
作者:hhgfy
来源:CSDN
原文:https://blog.csdn.net/m0_38086372/article/details/88542909
版权声明:本文为博主原创文章,转载请附上博文链接!

===================================================================================================

奶奶的,原来使用了sudo还会把环境变量重置了

最新文章

  1. iOS中iconfont(图标字体)的基本使用
  2. Oracle和SQLServer解锁杀进程
  3. Web 开发中应用 HTML5 技术的10个实例教程
  4. python3读取chrome浏览器cookies
  5. 网页中插入FLASH(swf文件),并且让Flash不遮挡HTML元素
  6. [百科] - SIP(会话发起协议)
  7. XML中对特殊字符的处置
  8. request&response笔记
  9. windows 8以上找回开始菜单
  10. jmeter测试dubbo接口
  11. 设置ios中imageView图片自适应,
  12. linux python3.5.0安装并替代centos自带的python
  13. Long转Date/页面自定义标签
  14. Map,HashMap,TreeMap
  15. WordPress调用特色图片地址源,去除特色图片img标签其他样式
  16. EOS之hello智能合约解析
  17. Python-Django 视图层
  18. JAVA枚举带赋值
  19. Android多种方法显示当前日期和时间
  20. 微信小程序cavas画图并保存

热门文章

  1. 支撑百亿级应用的 NewSQL
  2. PCB Genesis加邮票孔(线与线)实现算法
  3. selenium3 + python - css定位
  4. AOP实现参数的判空问题
  5. String和八种基本数据类型互相转换
  6. 文字水平居中和垂直居中的CSS
  7. css样式变 及实际用法
  8. ie8及其以下版本兼容性问题之响应式
  9. sql server 数据库优化--显示执行计划
  10. Embedded之Stack之三