如何在系统重新启动时自动重新启动 Tomcat7?

Gau*_*wal 26 init.d scripts tomcat

我已经在 Ubuntu 12.04 LTS 上安装了 Tomcat 7,它在 Amzon EC2 实例上运行。现在我希望 tomcat 应该在系统重启时自动重启。

我阅读了这篇博客,其中建议将以下脚本添加到/etc/init.d/tomcat7

# Tomcat auto-start
#
# description: Auto-starts tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid

case $1 in
start)
sh /usr/share/tomcat7/bin/startup.sh
;;
stop) 
sh /usr/share/tomcat7/bin/shutdown.sh
;;
restart)
sh /usr/share/tomcat7/bin/shutdown.sh
sh /usr/share/tomcat7/bin/startup.sh
;;
esac 
exit 0
Run Code Online (Sandbox Code Playgroud)

并发出以下命令:

sudo chmod 755 /etc/init.d/tomcat7

sudo ln -s /etc/init.d/tomcat7 /etc/rc1.d/K99tomcat

sudo ln -s /etc/init.d/tomcat7 /etc/rc2.d/S99tomcat

sudo /etc/init.d/tomcat7 restart
Run Code Online (Sandbox Code Playgroud)

我的问题

  1. tomcat7已经在它的脚本,在这里我们必须粘贴提示脚本?
  2. 建议的程序是否正确?

Mar*_*ski 52

在 /etc/init.d/tomcat7 中创建 init 脚本,内容如下(你的脚本也应该可以工作,但我认为这个更符合标准)。

这样 Tomcat 只会在配置网络接口后启动。

初始化脚本内容:

#!/bin/bash

### BEGIN INIT INFO
# Provides:        tomcat7
# Required-Start:  $network
# Required-Stop:   $network
# Default-Start:   2 3 4 5
# Default-Stop:    0 1 6
# Short-Description: Start/Stop Tomcat server
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin

start() {
 sh /usr/share/tomcat7/bin/startup.sh
}

stop() {
 sh /usr/share/tomcat7/bin/shutdown.sh
}

case $1 in
  start|stop) $1;;
  restart) stop; start;;
  *) echo "Run as $0 <start|stop|restart>"; exit 1;;
esac
Run Code Online (Sandbox Code Playgroud)

更改其权限并自动添加正确的符号链接:

chmod 755 /etc/init.d/tomcat7
update-rc.d tomcat7 defaults
Run Code Online (Sandbox Code Playgroud)

从现在开始,它会在进入适当的运行级别后自动启动和关闭。你也可以控制它service tomcat7 <stop|start|restart>