/etc/init.d/jenkins
내 사용자 정의 Java 경로를 추가하기 위해 스크립트를 수정하려고 합니다 . 내 솔루션은 다음과 같습니다.
JAVAPATH=$(type -p java)
PATH=/bin:/usr/bin:/sbin:/usr/sbin:$JAVAPATH
그런데 서비스를 시작하고 로그를 살펴보면 JAVAPATH 변수가 비어 있는 것을 볼 수 있습니다. 반면에, 예를 들어 다음과 같이 쓴다면:
PYPATH=$(type -p python)
PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PYPATH
그러면 PATH 변수에 Python 바이너리가 완벽하게 포함됩니다.
내 최종 목표는 파일 이름을 제거하고 dirname을 다음과 같이 저장하는 것입니다.
JAVAPATH=$(type -p java | xargs dirname)
내 맞춤 스크립트와 테스트에서는 모든 것이 잘 작동하므로 Java에 내가 모르는 것이 있다고 가정합니다. 저는 Debian 10을 실행 중이고 Java 경로는 다음과 같습니다./usr/lib/jvm/jdk-11.0.9/bin/java
미리 감사드립니다.
문안 인사
답변1
type
변수 에 지정된 모든 디렉토리에서 파일을 찾는 쉘 내장입니다 $PATH
.
귀하 의 예에서는 java
.$PATH
반대로 은(는) 실제로 youyr 디렉터리 중 하나(특히 ) python
에 있기 때문에 발견됩니다 .$PATH
/usr/bin
어떤 Java 설치 방법을 사용하셨는지 모르겠지만 /etc/alternatives/java
일반적으로 시스템의 기본 Java 바이너리를 가리키도록 구성되어 있으므로 사용해 볼 수 있습니다.
그다지 명확하지 않은 또 다른 옵션은 dpkg -L <java package name>
jdk에서 제공하는 모든 파일을 나열하고 필터링하여 사용하려는 바이너리를 찾는 것입니다.
$ JAVA_PATH=$(dpkg -L openjdk-11-jre-headless|fgrep bin/java)
$ echo $JAVA_PATH
/usr/lib/jvm/java-11-openjdk-amd64/bin/java