天天看点

linux中dubbo服务启动

http://www.cnblogs.com/jeesml/p/5111852.html 1、环境变量配置  Java环境变量----只需要JRE vi /etc/profile ## java env export JAVA_HOME=/usr/local/java/jdk1.7.0_72 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/li/tools.jar:$JRE_HOME/lib/rt.jar export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin source /etc/profile 2、部署目录规范 目的:便于管理,避免应用迁移时的命名冲突。 我定义的目录结构如下(linux)下: --home   ----------linux home目录下     --jeesml    -------------用户信息         --jeesml  ------------项目类型               --app  ------------app应用                     --app1  -------------app应用1                     --app2...  -----------app应用2             --service ----------服务应用                     --service1  ----------服务1                     --service2... ---------服务2             --job  ------------定时调度应用                 --job1...  ------------定时调度工程             --web   ------------Web项目工程                 --web1  ---------Web项目工程1                 --web2... ---------Web项目工程2 3、手工维护Dubbo服务  (不建议使用) 执行命令: # java -jar edu-service-xxx.jar & 检查一下有哪些java程序在运行: # ps -ef | grep java  kill PID 进程id kill -9 PID  强杀,不建议使用,可能会造成数据丢失 4、自定义Dubbo服务维护的Shell脚本 (建议使用)    脚本命名规范: /home/jeesml/jeesml/service/xxx/service-xxx.sh 例如: /home/jeesml/jeesml/service/user/service-user.sh 效果: cd /home/jeesml/jeesml/service/user . /service-user.sh start . /service-user.sh stop . /service-user.sh restart 5、服务维护注意事项 (1) 脚本规范---------尽可能通用 (2) 守护进程 (3) 内存调优设置-----按需调整 (4) 日志处理---------只保留应用Log4j输出的日志 (5) 避免服务冲突 ----进程名、端口 (6) 避免进程误杀-----全匹配 简单脚本实例: #!/bin/sh ## java env export JAVA_HOME=/usr/local/java/jdk1.7.0_72 export JRE_HOME=$JAVA_HOME/jre ## service name APP_NAME=user SERVICE_DIR=/home/jeesml/jeesml/service/$APP_NAME SERVICE_NAME=edu-service-$APP_NAME JAR_NAME=$SERVICE_NAME\.jar PID=$SERVICE_NAME\.pid cd $SERVICE_DIR case "$1" in     start)         nohup $JRE_HOME/bin/java -Xms256m -Xmx512m -jar $JAR_NAME >/dev/null 2>&1 &         echo $! > $SERVICE_DIR/$PID         echo "=== start $SERVICE_NAME"         ;;     stop)         kill `cat $SERVICE_DIR/$PID`         rm -rf $SERVICE_DIR/$PID         echo "=== stop $SERVICE_NAME"         sleep 5         ##         ## edu-service-aa.jar         ## edu-service-aa-bb.jar         P_ID=`ps -ef | grep -w "$SERVICE_NAME" | grep -v "grep" | awk '{print $2}'`         if [ "$P_ID" == "" ]; then             echo "=== $SERVICE_NAME process not exists or stop success"         else             echo "=== $SERVICE_NAME process pid is:$P_ID"             echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID"             kill -9 $P_ID         fi         ;;     restart)         $0 stop         sleep 2         $0 start         echo "=== restart $SERVICE_NAME"         ;;     *)         ## restart         $0 stop         sleep 2         $0 start         ;; esac exit 0

继续阅读