>source

수정하려고합니다 /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 변수에 파이썬 바이너리가 완벽하게 포함됩니다.

내 마지막 목표는 파일 이름을 제거하고 dirname을 저장하는 것입니다.

JAVAPATH=$(type -p java | xargs dirname)

내 custum 스크립트와 테스트에서 모든 것이 잘 작동하므로 Java에 내가 모르는 것이 있다고 가정합니다. Debian 10을 실행 중이고 Java 경로는 /usr/lib/jvm/jdk-11.0.9/bin/java

미리 감사드립니다.

문안 인사

  • 답변 # 1

    type 당신의 디렉토리에 지정된 모든 디렉토리에서 파일을 찾는 쉘 내장입니다. $PATH 변하기 쉬운.

    귀하의 예에서는 아무것도 표시되지 않습니다. java 바이너리에 지정된 디렉토리의 $PATH .

    반대로 python 그것은 실제로 youyr 중 하나이기 때문에 발견되고 있습니다 $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
    
    

  • 이전 mysql - Mysql8에서 이름 해결을 건너 뛰고 대신 IP를 사용하는 방법은 무엇입니까?
  • 다음 digital ocean - Nginx를 사용하면 모든 위치 블록에 콘텐츠 보안 정책을 추가해야합니까?