2017-04-27 5 views
0

나는 이것을 사용했지만 오류가 발생했습니다. 어떤 도움을 주셔서 감사합니다. 또한 http://docs.geoserver.org/latest/en/user/_downloads/geoserver_deb Geoserver 웹 사이트에서 코드를 시도했지만 debain 용입니다. CentOS를 처음 접했을 때 그것에 대해 많이 알지 못합니다. 나는 서비스를 실행하기 위해 매번 수동으로 statup.sh를 실행해야한다. 여기 CentOS에서 Geoserver 서비스 자동 시작

Starting geoserver… 
bash: /var/log/geoserver.log: Permission denied 
geoserver is started 

는 자동 시작 스크립트입니다 :

#!/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 

답변

0

(이 경우 /var/log/ 단위) GeoServer 데이터 디렉토리 및 로그 파일 위치에 쓸 수 있어야합니다 tomcat를 실행하는 사용자입니다. centos가 무엇을 사용하는지 정확하게 잊는다. 그러나 아마 tomcat 또는 tomcat7 일 것이다.