CentOS 8 /etc/profile.d/未执行

CentOS 8 /etc/profile.d/未执行

在 CentOS 8 上,$PATH 没有使用我的脚本“/etc/profile.d/app-server-profile.sh”(SSH 登录)中设置的值进行更新。

我正在通过 SSH 登录到该框。我希望“/etc/profile”在登录时执行我的“/etc/profile.d/app-server-profile.sh”脚本。(是否有日志可以确认此文件已执行?)

这是“/etc/profile.d/”的内容(权限是否正确?):

[builder@F1-TEST-V245 ~]$ ls -hal /etc/profile.d
total 108K
drwxr-xr-x.   2 root root 4.0K May 18 15:38 .
drwxr-xr-x. 113 root root 8.0K May 18 15:38 ..
-rw-r--r--.   1 root root  253 May 18 15:37 app-server-profile.sh
-rw-r--r--.   1 root root  664 May 11  2019 bash_completion.sh
-rw-r--r--.   1 root root  196 May 10  2019 colorgrep.csh
-rw-r--r--.   1 root root  201 May 10  2019 colorgrep.sh
-rw-r--r--.   1 root root 1.8K May 11  2019 colorls.csh
-rw-r--r--.   1 root root 1.6K May 11  2019 colorls.sh
-rw-r--r--.   1 root root  162 May 10  2019 colorxzgrep.csh
-rw-r--r--.   1 root root  183 May 10  2019 colorxzgrep.sh
-rw-r--r--.   1 root root  216 May 10  2019 colorzgrep.csh
-rw-r--r--.   1 root root  220 May 10  2019 colorzgrep.sh
-rw-r--r--.   1 root root   80 May 11  2019 csh.local
-rw-r--r--.   1 root root 1.1K Dec 14  2017 gawk.csh
-rw-r--r--.   1 root root  757 Dec 14  2017 gawk.sh
-rw-r--r--.   1 root root 2.3K Sep 10  2018 lang.csh
-rw-r--r--.   1 root root 2.3K Sep 10  2018 lang.sh
-rw-r--r--.   1 root root  500 May 11  2019 less.csh
-rw-r--r--.   1 root root  253 May 11  2019 less.sh
-rw-r--r--.   1 root root   57 May 18 15:38 maven.sh
-rw-r--r--.   1 root root   81 May 11  2019 sh.local
-rw-r--r--.   1 root root  106 May 11  2019 vim.csh
-rw-r--r--.   1 root root  248 May 11  2019 vim.sh
-rw-r--r--.   1 root root  120 May 10  2019 which2.csh
-rw-r--r--.   1 root root  310 May 10  2019 which2.sh

这是来自“/etc/profile”的片段(应该运行我的脚本):

for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null
        fi
    fi
done

这是“/etc/profile.d/app-server-profile.sh”的内容:

# All custom environment settings go in this file

# Add AWS CLI from /usr/local/bin
PATH="/usr/local/bin:$PATH"
PATH="/server-setup/scripts:$PATH"
export PATH

sudo chown --recursive :wheel /server-setup/scripts
sudo chmod -R 755 /server-setup/scripts

这是我的 SSH 登录后的 $PATH(路径上没有 /server-setup/scripts):

[builder@F1-TEST-V245 ~]$ echo $PATH
/home/builder/.local/bin:/home/builder/bin:/bin:/usr/bin:/bin

在我看来,通过 SSH 进入机器后,应该执行“app-server-profile.sh”脚本,并且应该更新我的 $PATH。它之前正在执行,但最近停止工作了。我不确定如何跟踪启动过程以找到失败的地方。

答案1

Centos 8

/etc/profile.d/

  • 文件扩展名:.sh 例如'/etc/profile.d/my-script.sh'
  • 文件权限0644:(-rw-r--r--
  • 注销和登录后的更新(范围:全球的

备择方案

  1. /etc/environment
  • 输入如下行:export ENV_VAR=env_value
  • 立即更新(范围:全球的
  1. ~/.bashrc~/.bash_profile
  • 输入如下行:export ENV_VAR=env_value
  • 立即更新(范围:当前用户

更多解释

如何永久设置环境变量

相关内容