CentOS 7에서 비 로그인 쉘에 대한 PATH를 어떻게 설정합니까?
특히,에 바이너리가 필요한 시스템 단위가 /usr/local/texlive/2016/bin/x86_64-linux
있습니다.
나는 그것을에서 설정하는 시도 /etc/environment
로 PATH=/usr/local/texlive/2016/bin/x86_64-linux:$PATH
하지만 내 PATH이었다 /usr/local/texlive/2016/bin/x86_64-linux:$PATH:/usr/local/sbin:/usr/sbin
.
나는 /etc/profile.d/texlive.sh
함께 export PATH="/usr/local/texlive/2016/bin/x86_64-linux:${PATH}"
만들었지 만 로그인 쉘에서만 작동했습니다.
모든 사용자 (로그인 및 비 로그인 셸)의 경로 설정을 살펴 보았지만 솔루션은 이미 위에서 시도되었습니다.
데비안에서 모든 사용자의 비 로그인 셸 및 로그인 셸에 대해 시스템 $ PATH에 경로를 추가하는 방법을 보았지만 허용되는 해결책이 없으며 /etc/login.defs
업데이트에서 변경 될 수 있으므로 수정하고 싶지는 않습니다 .
답변
가장 간단한 대답은 systemd Unit 파일에서 명령의 PATH
일부로 설정하는 것 ExecStart
입니다. 예를 들어 현재
ExecStart=/bin/mycmd arg1 arg2
그런 다음
ExecStart=/bin/bash -c 'PATH=/new/path:$PATH exec /bin/mycmd arg1 arg2'
확장은 $PATH
시스템화되지 않은 bash에 의해 수행됩니다. 사용과 같은 대안 Environment=PATH=/new/path:$PATH
은 systemd로 확장되지 않습니다 $PATH
.