jenkins.war에서 실행하려면 다음 명령을 사용하고 있습니다.
jenkins -jar jenkins.war
하지만 전쟁을 실행할 때 다음 경로를 지정하고 싶습니다.
`/data/jenkins`
jenkins
사용자로 실행 해야 합니다 . 이제 디렉토리 root
아래에서 사용자 로 /root
실행 중 입니다.
어떻게 해야 하나요?
답변1
스크립트에서 다음 환경 변수를 사용했습니다.
JENKINS_HOME="/data/jenkins" JENKINS_WAR="/data/jenkins/jenkins.war"
-D 옵션을 사용하여 Java에 전달합니다.
자바 -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR
# ps -ef | grep java
root 5 1 0 Mar19 ? 00:05:10 /apps/java/jdk1.8.0_121/bin/java -DJENKINS_HOME=/data/jenkins -jar /data/jenkins/jenkins.war
답변2
Jenkins 위키에서는 이를 Unix 데몬으로 설정하는 방법에 대해 설명합니다.Jenkins를 Unix 데몬으로 설치. 귀하의 질문에 RHEL 태그가 있으며 RHEL 7이 사용되므로 Jenkins를 서비스 systemd
로 실행하도록 설정할 수 있습니다 . systemd
이를 수행하는 단계는 다음과 같습니다.
먼저 Jenkins WAR 파일을 다운로드하여 어딘가에 배치해야 합니다. 나는 위치를 선택했다
/opt/jenkins/jenkins.war
./data/jenkins
다음 으로 사용할 데이터 디렉터리를 생성/준비해야 합니다.이제 다음 이름의 시스템 사용자 계정을 만들 수 있습니다
jenkins
.useradd -r jenkins
다음으로 Jenkins WAR 파일 및 데이터 디렉터리의 소유권을 이 새 사용자로 변경합니다.
chown -R jenkins:jenkins /opt/jenkins/ chown -R jenkins:jenkins /data/jenkins/
다음으로,
systemd
새 유닛 파일을 생성하여 서비스를 정의합니다.vi /etc/systemd/system/jenkins.service [Unit] Description=Jenkins Daemon [Service] ExecStart=/bin/java -jar /opt/jenkins/jenkins.war User=jenkins Environment=JENKINS_HOME=/data/jenkins [Install] WantedBy=multi-user.target
다시 로드하여
systemd
새 유닛 에 대해 알아보세요.systemctl daemon-reload
마지막으로 Jenkins를 시작합니다.
systemctl start jenkins
이제 포트 8080에서 Jenkins에 액세스할 수 있습니다. 포트가 활성화된 경우 시스템에서 실행하여 이를 허용 firewalld
해야 합니다 .firewall-cmd --add-port=8080/tcp
이제 Jenkins 로그를 보는 데 사용할 수 있습니다 journalctl _SYSTEMD_UNIT=jenkins.service
. 실행 중이 면 사용자로 실행 ps -ef | grep jenkins
중임을 표시합니다 jenkins
.
jenkins 1749 1 7 11:04 ? 00:00:35 /bin/java -jar /opt/jenkins/jenkins.war
추가 보너스로 systemctl enable jenkins
시스템 시작 시 자동으로 시작되도록 하려면 Jenkins 서비스를 실행하세요.