关键在“谁生效”和“怎么持久”,系统级变量用/etc/profile.d/或/etc/profile,用户级用~/.bashrc或~/.bash_profile,systemd服务必须在.service文件中用Environment显式声明。
CentOS 服务器环境变量配置,关键在“谁生效”和“怎么持久”。写法本身简单,但选对位置才能让变量真正起作用——不是所有地方加了 export 都能被程序看到。
适用于 Java、Python、MySQL 等全局服务或命令路径(如 /opt/jdk/bin 或 /usr/local/mysql/bin)。推荐两种方式:
/etc/profile.d/ 下的独立脚本(更规范、易管理):新建文件 /etc/profile.d/myapp.sh,内容为:
export JAVA_HOME=/opt/jdk1.8.0_301
export PATH=$JAVA_HOME/bin:$PATH
保存后无需重启,执行 source /etc/profile 即可全局生效。
/etc/profile(适合少量变量):用 sudo vi /etc/profile,末尾加一行:
export PATH="/usr/local/node/bin:$PATH"
保存后同样运行 source /etc/profile。
适合开发人员自定义工具链(如本地 Python 虚拟环境、私有 bin 目录),不影响其他用户:
~/.bashrc(推荐):编辑 ~/.bashrc,末尾添加:
export PYTHONPATH="/home/user/myproject/lib:$PYTHONPATH"
export PATH="$HOME/.local/bin:$PATH"
然后执行 source ~/.bashrc。注意:SSH 登录时默认不加载 .bashrc,需确保 ~/.bash_profile 中有 source ~/.bashrc 这行。
~/.bash_profile(登录 Shell 专用):如果只希望变量在登录时生效(比如远程 SSH 连接),可放这里,语法同上。
很多后台服务(如 Spring Boot jar、Nginx、Redis)由 systemd 启动,默认不读取 shell 的 ~/.bashrc 或 /etc/profile,必须单独配置:
/etc/systemd/system/myapp.service;[Service] 段下添加:Environment="JAVA_HOME=/opt/jdk1.8.0_301"
Environment="PATH=/opt/jdk1.8.0_301/bin:/usr/local/bin:/usr/bin:/bin"
sudo systemctl daemon-reload
sudo systemctl restart myapp
别只靠 echo $PATH,要确认变量是否真被目标进程继承:
printenv | grep -i java 或 echo $JAVA_HOME;cat /proc/$(pgrep -f "myapp.jar")/environ | tr '
TPLink TLWDR4320 无线路由器IP带宽控制功能分配带宽设置方法
SQL Server 2008及更高版本数据库恢复做法之日志尾部备份实用指南
TPLink TLWDR4320 无线路由器控制管控小孩上网行为设置
TPLink TLWDR4320 无线路由器打印服务器设置指南
TPLink TLWDR8620 52 无线路由器当作交换机使用教程
TPLink TLWDR8620 52 无线路由器映射服务器到外网操作方法