用tar.gz的包装了tomcat如何设置自动启动
-
- 帖子: 40
- 注册时间: 2007-02-26 11:09
用tar.gz的包装了tomcat如何设置自动启动
用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
/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
- bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
- 联系:
-
- 帖子: 40
- 注册时间: 2007-02-26 11:09
- bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
- 联系:
-
- 帖子: 40
- 注册时间: 2007-02-26 11:09
-
- 帖子: 9
- 注册时间: 2008-01-17 12:39
[分享]这个问题我刚刚搞定。
这个问题我刚刚搞定。不过我的系统服务是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”内容:
我的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.
囗囗囗_func=0
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
囗囗囗_func=1
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
囗囗囗_func=1
fi
# Templete.
# Return:
# 囗囗囗_PROC_ON means process is there.
# 囗囗囗_PROC_OFF means process not exists.
# Other means error.
囗囗囗_PROC_ON=1
囗囗囗_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 $囗囗囗_PROC_ON
fi
done
return $囗囗囗_PROC_OFF
}
# Templete.
# Shows OK.
# Return:
echo_ok() {
case $囗囗囗_func in
1)
echo_success
echo ""
;;
*)
echo ""
echo " [ OK ]"
;;
esac
}
# Templete.
# Shows Passed.
# Return:
echo_pass() {
case $囗囗囗_func in
1)
echo_passed
echo ""
;;
*)
echo ""
echo " [PASSED]"
;;
esac
}
# Templete.
# Shows Failed.
# Return:
echo_bad() {
case $囗囗囗_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 [ $囗囗囗_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 [ $囗囗囗_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 [ $囗囗囗_PROC_OFF = $proc ] ; then
if (rm -Rf $LOCK_FILE) ; then
echo_passed
echo ""
else
echo_bad
fi
elif [ $囗囗囗_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:39
“# 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”的值。
·这行是给“/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”的值。
-
- 帖子: 9
- 注册时间: 2008-01-17 12:39
再附上自编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.
囗囗囗_func=0
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
囗囗囗_func=1
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
囗囗囗_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 "囗囗囗_func=$囗囗囗_func"
#'/myops/exec/pause'
# Templete.
# Return:
# 囗囗囗_PROC_ON means process is there.
# 囗囗囗_PROC_OFF means process not exists.
# Other means error.
囗囗囗_PROC_ON=1
囗囗囗_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 $囗囗囗_PROC_ON
fi
done
return $囗囗囗_PROC_OFF
}
# Templete.
# Shows OK.
# Return:
echo_ok() {
case $囗囗囗_func in
1)
echo_success
echo ""
;;
*)
echo ""
echo " [ OK ]"
;;
esac
}
# Templete.
# Shows Passed.
# Return:
echo_pass() {
case $囗囗囗_func in
1)
echo_passed
echo ""
;;
*)
echo ""
echo " [PASSED]"
;;
esac
}
# Templete.
# Shows Failed.
# Return:
echo_bad() {
case $囗囗囗_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 [ $囗囗囗_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 [ $囗囗囗_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 [ $囗囗囗_PROC_OFF = $proc ] ; then
if (rm -Rf $LOCK_FILE) ; then
echo_passed
echo ""
else
echo_bad
fi
elif [ $囗囗囗_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 [ $囗囗囗_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
-
- 帖子: 9
- 注册时间: 2008-01-17 12:39
最后,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.
囗囗囗_func=0
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
囗囗囗_func=1
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
囗囗囗_func=1
fi
# Templete.
# Return:
# 囗囗囗_PROC_ON means process is there.
# 囗囗囗_PROC_OFF means process not exists.
# Other means error.
囗囗囗_PROC_ON=1
囗囗囗_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 $囗囗囗_PROC_ON
fi
done
return $囗囗囗_PROC_OFF
}
# Templete.
# Shows OK.
# Return:
echo_ok() {
case $囗囗囗_func in
1)
echo_success
echo ""
;;
*)
echo ""
echo " [ OK ]"
;;
esac
}
# Templete.
# Shows Passed.
# Return:
echo_pass() {
case $囗囗囗_func in
1)
echo_passed
echo ""
;;
*)
echo ""
echo " [PASSED]"
;;
esac
}
# Templete.
# Shows Failed.
# Return:
echo_bad() {
case $囗囗囗_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 [ $囗囗囗_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 [ $囗囗囗_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 [ $囗囗囗_PROC_OFF = $proc ] ; then
if (rm -Rf $LOCK_FILE) ; then
echo_passed
echo ""
else
echo_bad
fi
elif [ $囗囗囗_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
-
- 帖子: 9
- 注册时间: 2008-01-17 12:39