环境变量排查:$PATH、/etc/profile与systemd环境冲突解决

发布时间:2026/7/31 18:54:30
环境变量排查:$PATH、/etc/profile与systemd环境冲突解决 银河麒麟V10环境变量排查:$PATH、/etc/profile与systemd环境冲突解决适用场景:在麒麟 V10 上部署软件时,经常遇到「我在终端能跑,放进 systemd 服务就找不到命令/变量」——本质是登录 shell、环境文件与 systemd 的 environment 加载顺序不一致。本文一次讲清排查路径。1. 背景与适用场景某次在麒麟 V10 上部署一个 Java 中间件,手动执行启动脚本一切正常,但用systemctl start一拉起来就报JAVA_HOME: command not found。查了半天才发现:我在~/.bashrc里 export 了 JAVA_HOME,而 systemd 服务根本不读 bashrc,它只认/etc/environment和 unit 文件里的Environment=。这就是环境变量的「加载上下文」问题:交互登录 shell、非登录 shell、systemd 服务,三者读取的文件完全不同。2. 环境与前置条件# 看当前生效的全部环境变量