2016-12-27 190 views
1

我的问题简而言之:我无法设置tomcat的多个实例。使用update-rc.d for Ubuntu添加额外的tomcat实例失败

这开始发生在使用tomcat8的新的Ubuntu 16.04设置上。在Tomcat7的Ubuntu 12.04上,相同的配置工作正常。

我已经安装tomcat8和tomcat8用户:

apt-get install tomcat8 
apt-get install tomcat8-user 

然后,我创建的tomcat的新实例:

tomcat8-instance-create -p 8081 -c 8006 -w shutdown-test /var/lib/tomcat8-test 

我复制所有必要的tomcat的工作和conf文件和文件夹。 接下来,我复制tomcat8脚本新实例:

/etc/init.d# cp tomcat8 tomcat8-test 

我更新一样,新的数据脚本:

/etc/init.d# nano tomcat8-test 

# file contents 
NAME=tomcat8-test 
DESC="Tomcat 8 Test instance" 
CATALINA_HOME=/usr/share/tomcat8 

最后我尝试更新新的脚本的服务链接:

/etc/init.d# update-rc.d tomcat8-test defaults 90 

我得到了以下信息:

insserv: script tomcat8-test: service tomcat8 already provided! insserv: exiting now!
update-rc.d: error: insserv rejected the script header

有没有其他人经历过这样的事情?

所有我设法找到了自己是这样的:

source: [https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot][1] 
insserv: script X: service Y already provided! 
Bug in the package with script X: The facility provided in script /etc/init.d/X uses a non-unique value. Changing it to a unique value (for example the script name without .sh ending), solves the issue. 

回答

1

它开始后,我还修改脚本中/etc/init.d/tomcat8-test从工作:

### BEGIN INIT INFO 
# Provides:   tomcat8 
# Required-Start: $local_fs $remote_fs $network 
# Required-Stop:  $local_fs $remote_fs $network 
# Should-Start:  $named 
# Should-Stop:  $named 
# Default-Start:  2 3 4 5 
# Default-Stop:  0 1 6 
# Short-Description: Start Tomcat. 
# Description:  Start the Tomcat servlet engine. 
### END INIT INFO 

到:

### BEGIN INIT INFO 
# Provides:   tomcat8-test 
# Required-Start: $local_fs $remote_fs $network 
# Required-Stop:  $local_fs $remote_fs $network 
# Should-Start:  $named 
# Should-Stop:  $named 
# Default-Start:  2 3 4 5 
# Default-Stop:  0 1 6 
# Short-Description: Start Tomcat. 
# Description:  Start the Tomcat servlet engine. 
### END INIT INFO 

这很奇怪,我不需要在tomcat7上更新ubuntu 12.04 :)。我认为这只是一个评论,但它看起来像是在执行。