tomcat以service服务方式启动、关闭、重启、查看状态,并设置环境语言

5 篇文章 0 订阅
2 篇文章 0 订阅

 linux下,tomcat以service服务方式启动、关闭、重启、查看状态,并设置环境语言。

同时对启动命令进行检测,并给出提示信息。

#!/bin/sh
# chkconfig: 345 99 10
# description: Auto-starts tomcat

export JAVA_HOME=/usr/local/java/jdk1.8.0_40
export CATALINA_HOME=/usr/local/tomcat/tomcat9_18080

export CATALINA_BASE=$CATALINA_HOME
export JRE_HOME=$JAVA_HOME/jre
export LANG=en_US.utf8
RETVAL=0
start()
{
		PID=$(ps -ef | grep $CATALINA_HOME | grep -v "grep" | awk '{print $2}')
    if [[ ! -z "$PID" ]]
			then
				echo "$0 already started , please execute restart!!..."
		else
			if [ -f $CATALINA_HOME/bin/startup.sh ];
				then
					echo "$0 is starting..."
					$CATALINA_HOME/bin/startup.sh
					RETVAL=$?
					return $RETVAL
			else
				echo "$0 shell is not exist..."
			fi
		fi
}
stop()
{
    PID=$(ps -ef | grep $CATALINA_HOME | grep -v "grep" | awk '{print $2}')
    if [[ ! -z "$PID" ]]
			then
				echo "$0 will be kill..."
				kill -9 $PID
		else
			echo "$0 already stoped..."
		fi
}
status(){
    numproc=`ps -ef | grep catalina | grep -v "grep catalina" | wc -l`
    PID=$(ps -ef | grep $CATALINA_HOME | grep -v "grep" | awk '{print $2}')
    if [[ ! -z "$PID" ]]
			then
				echo "$0 is running..."
		else
			echo "$0 is stopped..."
		fi
}

case "$1" in
 start) 
        start
        ;;
 stop)
        stop
        ;;
 restart)
         echo $"Restaring Tomcat"
         $0 stop
         sleep 1
         $0 start
         ;;
 status)
 				status
 				;;
 *)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac
exit $RETVAL

 


辅助命令:
cd /etc/rc.d/init.d/

touch tomcat18080

chmod +x tomcat18080

vim tomcat18080

chkconfig --add tomcat18080

 

备注:命令设置tomcat环境语言

export LANG=en_US.utf8

此处解决问题:tomcat以service服务启动和以./start.sh命令启动,service方式访问不到半角文件名问题。

 

备注:

tomcat9,报错如下:

25-Oct-2019 15:45:54.051 INFO [http-nio-18080-exec-5] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
 Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
 java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
	at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:467)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:294)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)

解决方法:tomcat9需要在server.xml里面设置如下内容,解决url请求不能携带特殊字符问题:

relaxedPathChars="|{}[],"
relaxedQueryChars="|{}[],"

    <Connector port="18080" protocol="HTTP/1.1"
               connectionTimeout="20000"
relaxedPathChars="|{}[],"
relaxedQueryChars="|{}[],"

               redirectPort="18443" />

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值