当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 14 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 用tar.gz的包装了tomcat如何设置自动启动
帖子发表于 : 2007-12-08 20:45 

注册: 2007-02-26 11:09
帖子: 40
送出感谢: 0 次
接收感谢: 0 次
用tar.gz的包装了tomcat如何设置自动启动

/usr/local/apache-tomcat-5.5.20/bin/startup.sh 可以启动,下次重启机就不行了。

在/etc/rc.local中和 /etc/init.d/rc.local中加入了上面的命令也不行,

请大家说细一些

我安装的是ubuntu server 7.04 没有桌面

用以下两种方法都试了也不成:
1、sudo cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql
2、sudo chmod +x mysql
3、sudo sysv-rc-conf
(运行服务管理工具,没有sysv-rc-conf的可以马上安装一个,apt-get install sysv-rc-conf,关于sysc-rc-conf的使用可以参考<Ubuntu7.04下使用sysv-rc-conf管理服务>)
4、运行sysv-rc-conf后找到mysql,并为它设置一个运行级别,本人设了2345。

另一种自动启动
cd /home/cmwfox/mysql-5.0.45
cp support-files/mysql.server /etc/init.d/mysqld
cd /etc/init.d
update-rc.d mysqld defaults


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-12-08 21:19 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
代码:
sudo ln -s /usr/local/apache-tomcat-5.5.20/bin/startup.sh /etc/rc2.d/S99tomcat


这样试试


_________________
关注我的blog: ε==3


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-12-08 21:31 

注册: 2007-02-26 11:09
帖子: 40
送出感谢: 0 次
接收感谢: 0 次
sudo ln -s /usr/local/apache-tomcat-5.5.20/bin/startup.sh /etc/rc2.d/S99tomcat

大哥你这办法不行啊.


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-12-08 21:34 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
为什么?难道你的runlevel不是2? 输个runlevel,看看输出。


_________________
关注我的blog: ε==3


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-12-08 21:48 

注册: 2007-02-26 11:09
帖子: 40
送出感谢: 0 次
接收感谢: 0 次
bones7456 写道:
为什么?难道你的runlevel不是2? 输个runlevel,看看输出。


是2的
root@ubuntu:~# runlevel
N 2


root@ubuntu:/etc/rc2.d# ls
README S11klogd S20makedev S89atd S99fetchmail S99rmnologin
S10sysklogd S16ssh S20rsync S89cron S99rc.local S99tomcat
root@ubuntu:/etc/rc2.d#
但启机就是不动行tomcat


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-12-10 17:38 

注册: 2007-02-26 11:09
帖子: 40
送出感谢: 0 次
接收感谢: 0 次
还有朋友知到吗。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-12-11 19:47 

注册: 2007-02-26 11:09
帖子: 40
送出感谢: 0 次
接收感谢: 0 次
?/??


页首
 用户资料  
 
8 楼 
 文章标题 : [分享]这个问题我刚刚搞定。
帖子发表于 : 2008-01-17 12:42 

注册: 2008-01-17 12:39
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
这个问题我刚刚搞定。不过我的系统服务是SysV风格的,强行弄成BSD风格比较别扭。如果一定要用BSD风格,可以在“/etc/rc.d/rc.local”里添加一行“/etc/rc.d/init.d/tfw_tomcat start”。但BSD风格我不清楚如何控制服务停止。

我的SysV服务脚本“/etc/rc.d/init.d/tfw_tomcat”内容:
代码:
#! /bin/sh

# chkconfig: 35 96 04
# description: Apache-Tomcat service script.

# Version:
#   2008-01-17-01
# By:
#   Typhoon.Free.Wolf.

# Service name.
SVC_NAME="Apache-Tomcat"
# Lock file.
LOCK_FILE="/var/lock/subsys/tfw_tomcat"
# Installation prefix.
APP_HOME="/opt/prog/c/Apache/Tomcat"
# The process name to monitor.
APP_PROC="java"
# Authorize user.
APP_USER="typhoon"

SLEEP_START=5
SLEEP_STOP=$SLEEP_START

# Importing functions.
flg_func=0
if [ -f /etc/init.d/functions ] ; then
   . /etc/init.d/functions
   flg_func=1
elif [ -f /etc/rc.d/init.d/functions ] ; then
   . /etc/rc.d/init.d/functions
   flg_func=1
fi

# Templete.
# Return:
#   FLG_PROC_ON means process is there.
#   FLG_PROC_OFF means process not exists.
#   Other means error.
FLG_PROC_ON=1
FLG_PROC_OFF=0
probe() {
   srch_rst=$(ps -A|grep $APP_PROC|awk '{print $4}')
   for rst in $srch_rst ; do
      if [ $APP_PROC = $rst ] ; then
         return $FLG_PROC_ON
      fi
   done
   return $FLG_PROC_OFF
}

# Templete.
#   Shows OK.
# Return:
echo_ok() {
   case $flg_func in
      1)
         echo_success
         echo ""
      ;;
      *)
         echo ""
         echo "   [  OK  ]"
      ;;
   esac
}

# Templete.
#   Shows Passed.
# Return:
echo_pass() {
   case $flg_func in
      1)
         echo_passed
         echo ""
      ;;
      *)
         echo ""
         echo "   [PASSED]"
      ;;
   esac
}

# Templete.
#   Shows Failed.
# Return:
echo_bad() {
   case $flg_func in
      1)
         echo_failure
         echo ""
      ;;
      *)
         echo ""
         echo "   [FAILED]"
      ;;
   esac
}

# Templete.
#   Start section.
# Return:
_start() {
   probe
   proc=$?
   echo ""
   echo "Starting $SVC_NAME..."

   if (touch $LOCK_FILE) ; then
      echo_ok
   else
      echo_bad
   fi
}

start() {
   probe
   proc=$?
   echo ""
   echo "Starting $SVC_NAME..."

   if [ $FLG_PROC_OFF = $proc ] ; then
      if (su - $APP_USER -c "$APP_HOME/bin/startup.sh") ; then
         sleep $SLEEP_START
         if (touch $LOCK_FILE) ; then
            echo_ok
         else
            echo_pass
            echo ""
         fi
      else
         echo_bad
      fi
   elif [ $FLG_PROC_ON = $proc ] ; then
      if (touch $LOCK_FILE) ; then
         echo_passed
         echo ""
      else
         echo_bad
      fi
   fi
}

# Templete.
#   Stop section.
# Return:
_stop() {
   probe
   proc=$?
   echo ""
   echo "Stopping $SVC_NAME..."

   if (rm -Rf $LOCK_FILE) ; then
      echo_ok
   else
      echo_bad
   fi
}

stop() {
   probe
   proc=$?
   echo ""
   echo "Stopping $SVC_NAME..."

   if [ $FLG_PROC_OFF = $proc ] ; then
      if (rm -Rf $LOCK_FILE) ; then
         echo_passed
         echo ""
      else
         echo_bad
      fi
   elif [ $FLG_PROC_ON = $proc ] ; then
      if (su - $APP_USER -c "$APP_HOME/bin/shutdown.sh") ; then
         sleep $SLEEP_STOP
         if (rm -Rf $LOCK_FILE) ; then
            echo_ok
         else
            echo_pass
            echo ""
         fi
      else
         echo_bad
      fi
   fi
}

# Parse command line parameters.
case $1 in
   start)
      start
   ;;
   stop)
      stop
   ;;
   restart)
      stop
      start
   ;;
   *)
      # Print help
      echo "Usage: $0 {start|stop|restart}"
      exit 1
   ;;
esac

exit 0


最后由 自由狼-台风 编辑于 2008-01-18 9:10,总共编辑了 1 次

页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-01-17 12:56 

注册: 2008-01-17 12:39
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
“# chkconfig: 35 96 04”行含义:
·这行是给“/sbin/chkconfig”准备的说明依,“/sbin/chkconfig”赖这行。。
·在切换向运行级别3和5启动本服务,而如果可能,在切换向其他运行级别时关闭本服务。
·本服务在关闭队列中的序号为94,“/sbin/chkconfig”会在相应级别的“/etc/rc.d/rcN.d”(N=0/1/2/4/6)里创建指向本脚本的链接“K94tfw_tomcat”。
·本服务在启动队列中的序号为04,“/sbin/chkconfig”会在相应级别(3、5)的“/etc/rc.d/rcN.d”(N=3/5)里创建指向本脚本的链接“S04tfw_tomcat”。
·实际上,链接中的序号可以自己指定,本行的序号用于自动创建链接。

“# description: Apache-Tomcat service script.”行含义:
·注释,具体用途尚不明确,但“/sbin/chkconfig”也依赖这行。

如果你没有“/sbin/chkconfig”这个工具,手工创建链接也是可以的。如果修改了脚本名,请也修改“$LOCK_FILE”的值。


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-01-18 9:14 

注册: 2008-01-17 12:39
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
再附上自编PostgreSQL的服务脚本:
代码:
#! /bin/sh

# chkconfig: 35 98 02
# description: PostgreSQL RDBMS start/stop script.

# Version:
#   2008-01-17-01
# By:
#   Typhoon.Free.Wolf.

# Service name.
SVC_NAME="PostgreSQL"
# Lock file.
LOCK_FILE="/var/lock/subsys/tfw_pgsql"
# Installation prefix.
APP_HOME="/opt/prog/m/PostgreSQL.MagicLinux-2.0"
# The process name to monitor.
APP_PROC="postmaster"
# Authorize user.
APP_USER="typhoon"

# Database directory.
PGDATA="/opt/prog/m/PostgreSQL-Database"
# Log file.
LOG_FILE="$PGDATA/server.log"
# A very command at start.
#CMD_START="su - $APP_USER -c \"$APP_HOME/bin/pg_ctl start -w -l $LOG_FILE\""
#CMD_START="su - typhoon -c \'/opt/prog/m/PostgreSQL.MagicLinux-2.0/bin/pg_ctl start -w -l /opt/prog/m/PostgreSQL-Database/server.log\'"
# A very command for stop.
#CMD_STOP="su - $APP_USER -c \"$APP_HOME/bin/pg_ctl stop -m fast\""

# Importing functions.
flg_func=0
if [ -f /etc/init.d/functions ] ; then
   . /etc/init.d/functions
   flg_func=1
elif [ -f /etc/rc.d/init.d/functions ] ; then
   . /etc/rc.d/init.d/functions
   flg_func=1
fi

#echo "SVC_NAME=$SVC_NAME"
#echo "LOCK_FILE=$LOCK_FILE"
#echo "APP_HOME=$APP_HOME"
#echo "APP_PROC=$APP_PROC"
#echo "PGDATA=$PGDATA"
#echo "LOG_FILE=$LOG_FILE"
#echo "APP_USER=$APP_USER"
#echo "CMD_START=$CMD_START"
#echo "CMD_STOP=$CMD_STOP"
#echo "flg_func=$flg_func"
#'/myops/exec/pause'

# Templete.
# Return:
#   FLG_PROC_ON means process is there.
#   FLG_PROC_OFF means process not exists.
#   Other means error.
FLG_PROC_ON=1
FLG_PROC_OFF=0
probe() {
   srch_rst=$(ps -A|grep $APP_PROC|awk '{print $4}')
   for rst in $srch_rst ; do
      if [ $APP_PROC = $rst ] ; then
         return $FLG_PROC_ON
      fi
   done
   return $FLG_PROC_OFF
}

# Templete.
#   Shows OK.
# Return:
echo_ok() {
   case $flg_func in
      1)
         echo_success
         echo ""
      ;;
      *)
         echo ""
         echo "   [  OK  ]"
      ;;
   esac
}

# Templete.
#   Shows Passed.
# Return:
echo_pass() {
   case $flg_func in
      1)
         echo_passed
         echo ""
      ;;
      *)
         echo ""
         echo "   [PASSED]"
      ;;
   esac
}

# Templete.
#   Shows Failed.
# Return:
echo_bad() {
   case $flg_func in
      1)
         echo_failure
         echo ""
      ;;
      *)
         echo ""
         echo "   [FAILED]"
      ;;
   esac
}

# Templete.
#   Start section.
# Return:
_start() {
   probe
   proc=$?
   echo ""
   echo "Starting $SVC_NAME..."

   if (touch $LOCK_FILE) ; then
      echo_ok
   else
      echo_bad
   fi
}

start() {
   probe
   proc=$?
   echo ""
   echo "Starting $SVC_NAME..."

   if [ $FLG_PROC_OFF = $proc ] ; then
      if (su - $APP_USER -c "$APP_HOME/bin/pg_ctl start -w -l $LOG_FILE") ; then
         if (touch $LOCK_FILE) ; then
            echo_ok
         else
            echo_pass
            echo ""
         fi
      else
         echo_bad
      fi
   elif [ $FLG_PROC_ON = $proc ] ; then
      if (touch $LOCK_FILE) ; then
         echo_passed
         echo ""
      else
         echo_bad
      fi
   fi
}

# Templete.
#   Stop section.
# Return:
_stop() {
   probe
   proc=$?
   echo ""
   echo "Stopping $SVC_NAME..."

   if (rm -Rf $LOCK_FILE) ; then
      echo_ok
   else
      echo_bad
   fi
}

stop() {
   probe
   proc=$?
   echo ""
   echo "Stopping $SVC_NAME..."

   if [ $FLG_PROC_OFF = $proc ] ; then
      if (rm -Rf $LOCK_FILE) ; then
         echo_passed
         echo ""
      else
         echo_bad
      fi
   elif [ $FLG_PROC_ON = $proc ] ; then
      if (su - $APP_USER -c "$APP_HOME/bin/pg_ctl stop -m fast") ; then
         if (rm -Rf $LOCK_FILE) ; then
            echo_ok
         else
            echo_pass
            echo ""
         fi
      else
         echo_bad
      fi
   fi
}

reload() {
   probe
   proc=$?
   if [ $FLG_PROC_ON = $proc ] ; then
      echo ""
      echo "Reloading $SVC_NAME..."

      if (su - $APP_USER -c "$APP_HOME/bin/pg_ctl reload") ; then
         if (rm -f $LOCK_FILE) ; then
            echo_ok
         else
            echo_pass
         fi
      else
         echo_bad
      fi
   fi
}

status() {
   probe
   proc=$?

   echo ""
   echo "Checking $SVC_NAME..."

   su - $APP_USER -c "$APP_HOME/bin/pg_ctl status -D '$PGDATA'"
}

# Parse command line parameters.
case $1 in
   start)
      start
   ;;
   stop)
      stop
   ;;
   restart)
      stop
      start
   ;;
   reload)
      reload
   ;;
   status)
      status
   ;;
   *)
      # Print help
      echo "Usage: $0 {start|stop|restart|reload|status}"
      exit 1
   ;;
esac

exit 0


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-01-18 9:15 

注册: 2008-01-17 12:39
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
最后,Apache-Httpd的服务脚本:
代码:
#! /bin/sh

# chkconfig: 35 94 06
# description: Apache-Httpd service script.

# Version:
#   2008-01-17-01
# By:
#   Typhoon.Free.Wolf.

# Service name.
SVC_NAME="Apache-Tomcat"
# Lock file.
LOCK_FILE="/var/lock/subsys/tfw_httpd"
# Installation prefix.
APP_HOME="/opt/prog/c/Apache/Httpd"
# The process name to monitor.
APP_PROC="httpd"
# Authorize user.
APP_USER="root"

SLEEP_START=0
SLEEP_STOP=$SLEEP_START

# Importing functions.
flg_func=0
if [ -f /etc/init.d/functions ] ; then
   . /etc/init.d/functions
   flg_func=1
elif [ -f /etc/rc.d/init.d/functions ] ; then
   . /etc/rc.d/init.d/functions
   flg_func=1
fi

# Templete.
# Return:
#   FLG_PROC_ON means process is there.
#   FLG_PROC_OFF means process not exists.
#   Other means error.
FLG_PROC_ON=1
FLG_PROC_OFF=0
probe() {
   srch_rst=$(ps -A|grep $APP_PROC|awk '{print $4}')
   for rst in $srch_rst ; do
      if [ $APP_PROC = $rst ] ; then
         return $FLG_PROC_ON
      fi
   done
   return $FLG_PROC_OFF
}

# Templete.
#   Shows OK.
# Return:
echo_ok() {
   case $flg_func in
      1)
         echo_success
         echo ""
      ;;
      *)
         echo ""
         echo "   [  OK  ]"
      ;;
   esac
}

# Templete.
#   Shows Passed.
# Return:
echo_pass() {
   case $flg_func in
      1)
         echo_passed
         echo ""
      ;;
      *)
         echo ""
         echo "   [PASSED]"
      ;;
   esac
}

# Templete.
#   Shows Failed.
# Return:
echo_bad() {
   case $flg_func in
      1)
         echo_failure
         echo ""
      ;;
      *)
         echo ""
         echo "   [FAILED]"
      ;;
   esac
}

# Templete.
#   Start section.
# Return:
_start() {
   probe
   proc=$?
   echo ""
   echo "Starting $SVC_NAME..."

   if (touch $LOCK_FILE) ; then
      echo_ok
   else
      echo_bad
   fi
}

start() {
   probe
   proc=$?
   echo ""
   echo "Starting $SVC_NAME..."

   if [ $FLG_PROC_OFF = $proc ] ; then
      if ($APP_HOME/bin/apachectl start) ; then
         sleep $SLEEP_START
         if (touch $LOCK_FILE) ; then
            echo_ok
         else
            echo_pass
            echo ""
         fi
      else
         echo_bad
      fi
   elif [ $FLG_PROC_ON = $proc ] ; then
      if (touch $LOCK_FILE) ; then
         echo_passed
         echo ""
      else
         echo_bad
      fi
   fi
}

# Templete.
#   Stop section.
# Return:
_stop() {
   probe
   proc=$?
   echo ""
   echo "Stopping $SVC_NAME..."

   if (rm -Rf $LOCK_FILE) ; then
      echo_ok
   else
      echo_bad
   fi
}

stop() {
   probe
   proc=$?
   echo ""
   echo "Stopping $SVC_NAME..."

   if [ $FLG_PROC_OFF = $proc ] ; then
      if (rm -Rf $LOCK_FILE) ; then
         echo_passed
         echo ""
      else
         echo_bad
      fi
   elif [ $FLG_PROC_ON = $proc ] ; then
      if ($APP_HOME/bin/apachectl stop) ; then
         sleep $SLEEP_STOP
         if (rm -Rf $LOCK_FILE) ; then
            echo_ok
         else
            echo_pass
            echo ""
         fi
      else
         echo_bad
      fi
   fi
}

# Parse command line parameters.
case $1 in
   start)
      start
   ;;
   stop)
      stop
   ;;
   restart)
      stop
      start
   ;;
   *)
      # Print help
      echo "Usage: $0 {start|stop|restart}"
      exit 1
   ;;
esac

exit 0


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2008-01-18 9:19 

注册: 2008-01-17 12:39
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
[center]鸣谢[/center]

ChinaUnixer:achlice
QQ(Name):路要一个人走
QQ(Name):小二
QQ(Name):消失在风中[]


最后由 自由狼-台风 编辑于 2008-01-18 15:04,总共编辑了 1 次

页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2008-01-18 15:04 

注册: 2008-01-17 12:39
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
目前看来,“/etc/rc.d/rc”在切换运行级别时会运行,并检查“/var/lock/subsys/”,当 “/var/lock/subsys/”下有与某服务脚本同名的文件时,一旦切换向该服务“off”的级别,“/etc/rc.d/rc”会自动以 “stop”参数调用服务脚本。


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2008-01-20 8:47 

注册: 2007-02-26 11:09
帖子: 40
送出感谢: 0 次
接收感谢: 0 次
谢谢大家,问题是解决了,不过有些东西还是不太明了,^_^官方应该有些正试的文档。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 14 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译