
jenkins.warで実行するには、次のコマンドを使用しています。
jenkins -jar jenkins.war
しかし、戦争を実行するときは、次のパスを指定したいと思います。
`/data/jenkins`
jenkins
ユーザーとして実行する必要があります。これで、ディレクトリroot
の下でユーザーとして/root
実行されています。
どうすればいいですか?
答え1
スクリプトで次の環境変数を使用しました。
JENKINS_HOME="/data/jenkins" JENKINS_WAR="/data/jenkins/jenkins.war"
-D オプションを使用して Java に渡します。
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 Wikiでは、これを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サービスを実行してください。