原文地址:Run Jira as a systemd service on linux
本文仅适用于服务器和数据中心平台上的 Atlassian 产品。 对服务器*产品的支持将于 2024 年 2 月 15 日之后终止。如果您正在运行服务器产品,可以访问 Atlassian 服务器支持终止公告,查看迁移选项。
*Fisheye和Crucible除外
Linux/Solaris 系统管理不属于 Atlassian 支持范围。本页面仅供参考。
一、目的
本文介绍如何在 Linux 中将 Jira 安装为 systemd 服务。
二、前提条件
Jira 已安装并正常运行,但启动时不会自动启动。例如,Jira 是通过 .zip 包而不是 .bin 安装程序安装的,或者您已将 JIRA 迁移到不同的服务器上。实测发现 bin 安装的也不会自动启动。
三、解决方案
- 以 root 用户身份登录 Jira 应用程序服务器。
- 以 root 用户身份为 jira 服务创建以下 systemd 单元文件:
bash
touch /lib/systemd/system/jira.service
chmod 664 /lib/systemd/system/jira.service
- 以 root 身份编辑 systemd 单元文件:
bash
vi /lib/systemd/system/jira.service
- 在 systemd 单元文件中添加以下内容,以定义 jira 服务:
bash
[Unit]
Description=Atlassian Jira
After=network.target
[Service]
Type=forking
User=jira
LimitNOFILE=20000
PIDFile=/opt/atlassian/jira/work/catalina.pid
ExecStart=/opt/atlassian/jira/bin/start-jira.sh
ExecStop=/opt/atlassian/jira/bin/stop-jira.sh
[Install]
WantedBy=multi-user.target
ℹ️上面定义的 "jira "用户是用于运行 jira 的用户,如果您在其他用户下运行 jira,请更改该用户。像我当前的服务器安装过多次 jira,所以用户名是 jira5,可以通过ps -ef | grep java
来查看 jira 运行的用户名。
ℹ️"/opt/atlassian/jira "是默认的 Jira 安装路径,如果您的 Jira 安装路径不同,请更改此路径。
⚠️请勿在前台运行 jira,否则将无法创建文件 "catalina.out"。
- 启用服务并启动它:
bash
systemctl daemon-reload
systemctl enable jira.service
systemctl start jira.service
systemctl status jira.service
ℹ️在某些情况下,尝试启用 Jira 服务时可能会看到以下错误消息:
bash
systemctl enable jira.service
Synchronizing state of jira.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable jira
update-rc.d: error: jira Default-Start contains no runlevels, aborting.
root@cnovit:/lib/systemd/system# cat /etc/init.d/jira
ℹ️这可能是由于之前创建的 Jira 服务文件造成的。要解决这个问题,用户可以根据自己的环境执行以下操作:
- 如果文件存在,请备份以前的 Jira 服务文件,然后在启用新的 Jira 服务文件之前删除它:
bash
cp /etc/init.d/jira /opt/atlassian/jira-init.d.bak && rm /etc/init.d/jira
sudo systemctl enable jira.service
Created symlink /etc/systemd/system/multi-user.target.wants/jira.service → /lib/systemd/system/jira.service.
⚠️此外,我们建议禁用 SELinux 策略。