16.2.5. 为Redhat/Fedora/CentOS设置启动脚本

你可以将Nexus配置成自动启动,通过将app脚本拷贝到/etc/init.d目录。在一个Redhat变种的Linux系统上(Redhat, Fedora, 或者 CentOS),以root用户执行下列操作:

  1. 复制${NEXUS_HOME}/bin/jsw/linux-ppc-64/app,或${NEXUS_HOME}/bin/jsw/linux-x86-32/app,或${NEXUS_HOME}/bin/jsw/linux-x86-64/app/etc/init.d/nexus

  2. 使/etc/init.d/nexus脚本可运行 —— chmod 755 /etc/init.d/nexus

  3. 编辑该脚本,更改下列变量。

    • 更改 APP_NAME 为 "nexus"

    • 更改 APP_LONG_NAME 为 "Sonatype Nexus"

    • 添加一个变量 NEXUS_HOME 指向你的 Nexus 安装目录

    • 添加一个变量 PLATFORM 内容包含 linux-x86-32linux-x86-64, 或 linux-ppc-64

    • 更改 WRAPPER_CMD${NEXUS_HOME}/bin/jsw/${PLATFORM}/wrapper

    • 更改 WRAPPER_CONF${NEXUS_HOME}/conf/wrapper.conf

    • 更改 PIDDIR/var/run.

    • 添加一个 JAVA_HOME 变量指向你的本地 Java 安装

    • 添加 ${JAVA_HOME}/binPATH

  4. (可选) 设置 RUN_AS_USER 为 "nexus". 如果你这么做,你需要:

    • 创建一个 nexus 用户

    • 更改你的 nexus 安装目录的 Owner 和 Group 为 nexus

最后你应该有一个文件/etc/init.d/nexus,它拥有如下的一些列配置属性(假设你在/usr/local/nexus安装Nexus,你在/usr/java/latest安装了Java):

JAVA_HOME=/usr/java/latest
PATH=${PATH}:${JAVA_HOME}/bin
APP_NAME="nexus"
APP_LONG_NAME="Sonatype Nexus"
NEXUS_HOME=/usr/local/nexus
PLATFORM=linux-x86-64
WRAPPER_CMD="${NEXUS_HOME}/bin/jsw/${PLATFORM}/wrapper"
WRAPPER_CONF="${NEXUS_HOME}/conf/wrapper.conf"
PRIORITY=
PIDDIR="/var/run"
#RUN_AS_USER=nexus

这个脚本有一个适当的chkconfig指令,因此要添加Nexus为一个服务,你要做的是运行如下的命令:

$ cd /etc/init.d
$ chkconfig --add nexus
$ chkconfig --levels 345 nexus on
$ service nexus start
Starting Sonatype Nexus...
$ tail -f /usr/local/nexus/logs/wrapper.log

第二个命令添加nexus为一个服务,可以由service命令启动和停止,可以由chkconfig命令管理。chkconfig管理/etc/rc[0-6].d中的符号链接,当操作系统重启或者在运行级别中转换时,它们控制服务的启动和停止。第三个命令添加nexus至运行级别3,4,和5 。service命令启动Nexus,最后的命令追踪wrapper.log以验证Nexus成功启动。如果Nexus成功启动了你应该看到一个信息告诉你Nexus正在端口8001监听HTTP连接。