首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Cent操作系统上自动启动Geoserver服务

在Cent操作系统上自动启动Geoserver服务
EN

Stack Overflow用户
提问于 2017-04-27 14:56:43
回答 1查看 976关注 0票数 0

我试着使用这个,但得到了错误:任何帮助都是感谢的。我也尝试了http://docs.geoserver.org/latest/en/user/_downloads/geoserver_deb地理服务器网站上的代码,但它是为debain.我是CentOS的新手,对它知之甚少。每次运行服务时,我都必须手动运行statup.sh。

代码语言:javascript
复制
Starting geoserver…
bash: /var/log/geoserver.log: Permission denied
geoserver is started

下面是自动启动脚本:

代码语言:javascript
复制
#!/bin/sh
### BEGIN INIT INFO
# Provides:          GeoServer
# Required-Start:    $local_fs $network $named $time $syslog
# Required-Stop:     $local_fs $network $named $time $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       Starts and stops the GeoServer, which should be located at /usr/share/geoserver
### END INIT INFO

SERVICE_NAME=geoserver
START=/usr/share/geoserver/geoserver-2.10.1/bin/startup.sh
STOP=/usr/share/geoserver/geoserver-2.10.1/bin/shutdown.sh
RUNAS=test
GEOSERVER_HOME=/usr/share/geoserver/geoserver-2.10.1/
JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64

PIDFILE=/var/run/geoserver.pid
LOGFILE=/var/log/geoserver.log

start() {
  if [ -f /var/run/$PIDNAME ] && kill -0 $(cat /var/run/$PIDNAME); then
    echo "$SERVICE_NAME is already running" >&2
    return 1
  fi
  echo "Starting $SERVICE_NAME…" >&2
  su -c "GEOSERVER_HOME=$GEOSERVER_HOME JAVA_HOME=$JAVA_HOME $START &> '$LOGFILE' & echo \$!" $RUNAS > "$PIDFILE"
  echo "$SERVICE_NAME is started" >&2
}

stop() {
  if [ ! -f "$PIDFILE" ] || ! kill -0 $(cat "$PIDFILE"); then
    echo "$SERVICE_NAME is not running" >&2
    if [ -f "$PIDFILE" ]; then
        echo "Removing $PIDFILE"
        rm $PIDFILE
    fi
    return 1
  fi
  echo "Stopping $SERVICE_NAME…" >&2
  su -c "$STOP &> '$LOGFILE' & echo \$!" $RUNAS && kill -15 $(cat "$PIDFILE") && rm -f "$PIDFILE"
  echo "$SERVICE_NAME has stopped" >&2
}

status() {
    printf "%-50s" "Checking $SERVICE_NAME..."
    if [ -f $PIDFILE ]; then
        PID=`cat $PIDFILE`
        if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then
            printf "%s\n" "Process dead but pidfile exists"
            exit 1
        else
            echo "$SERVICE_NAME is running"
        fi
    else
        printf "%s\n" "$SERVICE_NAME is not running"
        exit 3
    fi
}

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

exit 0
EN

回答 1

Stack Overflow用户

发布于 2017-04-27 22:32:37

运行tomcat的用户必须能够写入GeoServer数据目录和日志文件位置(在本例中为/var/log/)。我忘记了用户centos到底使用了什么,但它可能是tomcattomcat7

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43650663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档