JSVC启动Tomcat

What is JSVC?

Jsvc is a set of libraries and applications for making Java applications run on UNIX more easily. Jsvc allows the application (e.g. Tomcat) to perform some privileged operations as root (e.g. bindto a port < 1024), and then switch identity to a non-privileged user.
使用jsvc管理Tomcat的运行,相比使用其他方式最大的优势是可以使Tomcat以root身份做一些非root身份做不了的事,例如绑定端口到小与1024的端口,例如80。
通常为了安全考虑,linux服务器上运行Tomcat程序的进程其身份均不为root,这为Tomcat的正常使用带来了一些限制,使用jsvc恰好可以弥补这些限制带来的不足。

Using jsvc

在$CATALINA_HOME/bin中有commons-daemon-native.tar.gz,进入bin目录并解压
[root@sw ~]# ar zxvf commons-daemon-native.tar.gz
[root@sw ~]# cd commons-daemon-1.0.2-native-src/unix
[root@sw ~]# ./configure && make
编译完成后出现jsvc文件,复制jsvc到$CATALINA_HOME/bin目录下面
[root@sw ~]# cp jsvc ../../
为了方便受用,在/etc/init.d/目录下编写tomcat启动服务配置文件
[root@sw ~]#cd /etc/init.d/
[root@sw ~]#vi tomcat
下面贴出示例,复制并做本地化修改后即可使用

$CATALINA_HOME/bin中有commons-daemon-native.tar.gz,进入bin目录并解压
[root@sw ~]# ar zxvf commons-daemon-native.tar.gz 
[root@sw ~]# cd commons-daemon-1.0.2-native-src/unix
[root@sw ~]# ./configure && make
编译完成后出现jsvc文件,复制jsvc到$CATALINA_HOME/bin目录下面 
[root@sw ~]# cp jsvc ../../ 
为了方便受用,在/etc/init.d/目录下编写tomcat启动服务配置文件。 
[root@sw ~]#cd /etc/init.d/ 
[root@sw ~]#vi tomcat


#!/bin/sh

# Small shell script to show how to start/stop Tomcat using jsvc
#########根据自己的实际jdk位置来修改#############
JAVA_HOME=/usr/local/jdk1.7.0_51  
################Tomcat安装程序配置##############
CATALINA_HOME=/usr/local/apache-tomcat-7.0.62
DAEMON_HOME=$CATALINA_HOME/bin
################指定运行实力账户################
TOMCAT_USER=sandwish

######################实例配置#######################################
CATALINA_BASE=/usr/local/apache-tomcat-7.0.62-ins/instance
TMP_DIR=$CATALINA_BASE/temp
PID_FILE=$CATALINA_BASE/jsvc.pid
CATALINA_OPTS=
JAVA_OPTS='-Xms128m -Xmx512m -XX:MaxNewSize=128m -XX:MaxPermSize=256m'
######################实例配置########################################

##################加载类库##############
. /etc/rc.d/init.d/functions
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar:\
$CATALINA_HOME/bin/tomcat-juli.jar
##################加载类库##############

start() {
    $DAEMON_HOME/catalina.sh version |grep version
    # If you want to specify a user to run Tomcat.
    #increase the 'user $ TOMCAT_USER \' to the parameter list.
    $DAEMON_HOME/jsvc \
    -home $JAVA_HOME \
    -user $TOMCAT_USER \
    -Dcatalina.home=$CATALINA_HOME \
    -Dcatalina.base=$CATALINA_BASE \
    -Djava.io.tmpdir=$TMP_DIR \
    -wait 10 \
    -pidfile $PID_FILE \
    -outfile $CATALINA_BASE/logs/catalina.out \
    -errfile '&1' \
    $CATALINA_OPTS \
    $JAVA_OPTS \
    -cp $CLASSPATH \
    org.apache.catalina.startup.Bootstrap
   echo "start*****************************[ok]"
}

stop() {
    $DAEMON_HOME/catalina.sh version |grep version
    #
    $DAEMON_HOME/jsvc \
    -stop \
    -pidfile $PID_FILE \
    org.apache.catalina.startup.Bootstrap
    echo "stop*****************************[ok]"
}

status() {
     ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap" | awk '{printf $1 " "}' | wc | awk '{print $2}' >tomcat_process_count.txt
     read line < tomcat_process_count.txt
     if [ $line -gt 0 ]; then
       $DAEMON_HOME/catalina.sh version |grep version 
       echo -n  " ( pid "
       ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap" | awk '{printf $1 " "}'
       echo ") is running                             "
     else
       $DAEMON_HOME/catalina.sh version |grep version
       echo " is stopped"
     fi
}

case "$1" in
  start)
    # Start Tomcat
    start
    exit $?
    ;;

  stop)
    # Stop Tomcat
    stop
    exit $?
    ;;
  restart)
    # Restart Tomcat
    stop
    sleep 3
    start
    exit $?
    ;;
   status)
    status
    exit $?
    ;;
  *)
    echo "Usage: Tomcat7 {start|stop|restart|status}"
    exit 1;;
esac

#####

####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值