将JIRA应用作为一个Windows服务运行

EN: https://confluence.atlassian.com/adminjiraserver073/running-jira-applications-as-a-windows-service-861254037.html

从长远使用的角度,JIRA应该被配置成开机自动启动。对于Windows服务器,即指将JIRA配置成一个系统服务。

将JIRA作为一个系统服务运行,还有其他的好处。手动启动时,会打开一个命令行窗口,意外的关闭了这个窗口会导致JIRA关闭,这是一个风险。而且,JIRA的日志文件会被Windows服务妥善处理(存放在你JIRA安装目录中logs\stdout*.log,每天循环)。

 有两个方式将JIRA安装为服务:通过安装包,手动操作。

通过安装包安装服务

将JIRA作为服务安装最简单的方式是,在执行Windows安装包时勾选'Install JIRA as Service'。

 

你需要用于Windows操作系统的完整的管理员权限,才能保证安装过程的成功执行。

手动设置JIRA作为服务运行

当你存在如下情况时,你仍可以设置JIRA作为服务运行。

  • 你没有使用Windows安装包。
  • 你使用了安装包,但是在安装时没有将JIRA作为服务运行。

(info) 请注意:

  • 在任何带有用户账户控制(UAC)的Windows操作系统上,例如Windows Vista或Windows 7,为了确保能在下述步骤中执行脚本,你需要禁用UAC或者以管理员身份运行“cmd.exe”(例如,在‘cmd.exe’上点击鼠标右键,选择“以管理员身份运行”)。如果UAC是使能状态,只是简单的通过管理员账户登陆Windows也是不行的。

设置JIRA作为服务运行:

  1. 打开Dos命令行。
  2. 切换到JIRA应用的安装目录,进入‘bin’子目录。
    (warning) 如果安装路径中包含空格(如 'C:\Program Files\..'),请现将其转换为等价路径(如'C:\Progra~1\..')。
  3. 确保 JAVA_HOME  环境变量已经设置,该变量指向JAVA安装的根目录。
    (info) 在Dos命令窗口输入echo %JAVA_HOME%可以查看 JAVA_HOME 环境变量的当前值。
  4. 执行如下命令:

    service.bat install JIRA

    下面是这个过程的截图:


    JIRA现在应该已经设置成作为服务启动了
  5. 另外,为了让JIRA服务能在操作系统开机是自动启动,运行:

    tomcat8 //US//JIRA --Startup auto

    JIRA服务将在操作系统下次重启时自动启动。JIRA服务可以手动的执行命令 'net start JIRA' 和 'net stop JIRA’ 启动和关闭服务。

    要查看JIRA核心服务启动时的参数情况,可以通过 “开始”->"运行",输入 'regedt32.exe' ,然后:
    * 对于32位操作系统,依次进入 HKEY_LOCAL_MACHINE -> SOFTWARE -> Apache Software Foundation -> Procrun 2.0 -> JIRA<time stamp>
    * 对于64位操作系统,依次进入 HKEY_LOCAL_MACHINE -> SOFTWARE -> Wow6432Node -> Apache Software Foundation -> Procrun 2.0 -> JIRA<time stamp>

  6. 额外的JIRA启动配置项(可选):

    • 增加JIRA可用的最大内存(默认已经是256MB),运行:

      tomcat8 //US//service_name --JvmMx 512

      这里的 service_name 是你JIRA服务的名称,如 JIRA123487934298。

    • 如果你在同一个JVM中运行JIRA 和 Confluence,将 MaxPermSize 增加到 128 MB:

      tomcat8 //US//service_name ++JvmOptions="-XX:MaxPermSize=128m"

      这里的 service_name 是你JIRA服务的名称,如 JIRA123487934298。

    • 有时候,查看JIRA的垃圾回收信息是可能是有用的。在分析内存问题的时候尤其如此。要打开log及垃圾回收详细的日志信息,在dos窗口执行如下命令:

      tomcat8 //US//service_name ++JvmOptions="-Xloggc:path\to\logs\atlassian-gc.log"

      这里的 service_name 是你JIRA服务的名称,如 JIRA123487934298。
      path(用 \path\to 表示)表示JIRA的当前安装目录。例如:

      tomcat8 //US//service_name ++JvmOptions="-Xloggc:c:\jira\logs\atlassian-gc.log"

      这里的 service_name 是你JIRA服务的名称,如 JIRA123487934298。

查看 Tomcat文档,可以获取更多服务配置项的信息。

删除JIRA服务

如果你是通过Windows安装包安装的JIRA,从系统的控制面板中选择“添加和删除应用”即可删除JIRA,服务也会一并删除。

如果你手动安装(见上)的JIRA服务,可以通过如下操作删除:

service.bat remove JIRA

或者,如果上述操作无效,可以使用 tomcat8 //DS//JIRA。

变更JIRA服务使用的Windows用户

如果你使用的是映射网络驱动器作为JIRA的备份目录、附件存储目录、索引目录或者 %CATALINA_HOME%\‌* 目录,你要确保JIRA有这些驱动器的写权限。事实上,这些目录都需要被JIRA运行时的用户写入。这就意味着你可能需要变更JIRA服务使用的系统账户。

(info) 注意,你必须通过UNC指定映射驱动器,而非字母映射。如:\\backupserver\jira,不能用  z:\jira

要改变JIRA服务所用的Windows账户,打开Windows服务管理,可以通过 '控制面板' -> '管理工具' -> '服务'.  找到 'Atlassian JIRA' 服务,右键查看“属性”。

到“登录”标签页,修改为想要修改的账户。

指定多个服务的启动顺序

如果有的服务是依赖另外一个的,那按照正确的顺序启动他们是非常重要的。常见的例子包括:

  • 如果你同时运行JIRA和 Crowd, 先启动Crowd 是很重要的,以便确保用户在尝试登录JIRA前 Crowd 已经在运行。
  • 如果JIRA连接的数据库与JIRA在同一个服务器上,并且通过一个Windows服务启动,那只有当数据库服务首先启动起来后,JIRA服务才能成功启动。

要设置启动依赖关系,打开一个dos窗口,输入以下命令:
C:\Documents and Settings\Developer>sc config [JIRA service] depend=[database service]
请注意  'depend=' 后的空格字符。

  • [JIRA service] 是正在运行的JIRA服务名称,如 JIRA051007111904。
  • [database service] 是正在运行的数据库服务名称,如 MSSQLSERVER。

如果你想,你还可以通过编辑系统注册表来设置依赖关系。请查看http://support.microsoft.com/kb/193888 来获取详细的设置方法。

查找服务名称

如果你不知道JIRA服务或者数据库服务的实际名称,可以通过如下步骤查看:

  1. 依次打开 '控制面板' > '管理工具' > '服务'。
  2. 将出现“服务”窗口:
  3. 在你想要查找的服务上右键,在弹出菜单中选择 '属性' :
  4. 在“常规”标签页上就可以看到“服务名称”:

疑难解决

  • JIRA 6.0及之后的版本不支持JAVA 6。当尝试基于JDK 1.6 将JIRA作为服务运行时可能会出现问题。这个问题是因为没有找到"MSVCR71.DLL",它存放在 %JAVA_HOME%/bin目录,有两个方法可以解决这个问题
    • 将 %JAVA_HOME/bin 添加到环境变量PATH里,然后重启JIRA服务器。
    • 将MSVCR71.DLL复制到系统目录 C:\WINDOWS\SYSTEM32 或这 C:\WINNT\SYSTEM32 里。
  • 注意正在运行的服务的用户名,并确保在你安装目录中修改 /temp 和 /work 文件夹,已确保运行账户有写权限。
  • 如果你需要分配超过1.5GB的内存,将无法在64位操作系统上运行JIRA服务。这是因为32位 JDK的内存限制和64位 JDK/Tomcat 服务问题。
posted @ 2018-03-07 18:15  临江仙·2007  阅读(519)  评论(0编辑  收藏  举报