上篇文章中介绍了如何在ubuntu环境下进行nexus的安装。这篇文章我们来继续说明一下如何将nexus注册为一个服务。
为什么要注册或者说设置为一个服务? 主要的原因就是使用的方便,在上篇文章中我们介绍了启动nexus服务的方式,但是启动之后执行启动的页面不能关闭,如果关闭之后,nexus服务就中止了。你也可以说使用screen的方式来执行,当时万一screen被其它同学中止了之后呢? 从另一个方面来说,我们不期望机器重启之后还需要手动去启动nexus服务,这样是对精力的一种浪费。
这里我们介绍2种方式,一种是/etc/init.d方式,另一种是systemctl方式。 这两种方式使用root用户均可以执行,但是对于后一种方式用户nexus也可以执行。
首先切换到nexus目录 cd nexus-3.5.0-02
修改 bin/nexus.rc, 修改内容为
run_as_user="nexus"
/etc/init.d方式的配置:以下命令均使用root用户方式执行
使用root用户修改 /etc/profile文件 添加 NEXUS_HOME=/usr/local/nexus/nexus-3.5.0-02(这里的路径根据自己的情况进行修改),然后执行source /etc/profile使得配置生效。
可以使用echo $NEXUS_HOME的方式查看配置是否生效(切换到nexus用户也可以检查一下)
然后执行 ln -s $NEXUS_HOME/bin/nexus /etc/init.d/nexus
接着执行下列命令
cd /etc/init.d
update-rc.d nexus defaults
service nexus start
官方文档中介绍使用chkconfig的方式,但是对于ubuntu环境并没有这个命令,安装了sysv-rc-conf
使用命令apt-get install sysv-rc-conf
接着执行sysv-rc-conf --level 345 nexus on
但是在执行service nexus start命令的时候出现如下错误Failed to start nexus.service: Unit nexus.service not found. 所以使用的是update-rc.d的方式。
这种方式是可以启动、关闭nexus服务的。
另一种是systemctl的方式,以下命令均使用root用户方式执行
在/etc/systemd/system/ 目录下创建一个名称为nexus.service的文件,文件内容为:
[Unit]
Description=nexus service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nexus/nexus-3.5.0-02/bin/nexus start
ExecStop=/usr/local/nexus/nexus-3.5.0-02/bin/nexus stop
User=nexus
Restart=on-abort
[Install]
WantedBy=multi-user.target
上述文件中的路径需要根据实际情况进行更新。文件更新之后,执行命令chmod a+x nexus.service
接着执行以下命令
systemctl daemon-reload
systemctl enable nexus.service
systemctl start nexus.service
在我的操作过程中,首先配置了/etc/init.d的方式,然后配置了systemd的方式。 两种方式均可以启动、停止nexus服务,其中systemd的方式使用nexus用户也可以执行。 配置完毕之后,重新启动节点机器,配置是生效的,nexus服务会开机启动。
(因为配置/etc/init.d方式之后没有重启机器进行测试,所以不确定第一种方式是否生效。)