2014-11-08 2 views
1

현재 우분투로 부팅 할 때마다 Neo4j 서비스가 시작됩니다. 이는 dev 컴퓨터로 사용하고 있으며 항상 neo4j를 실행하지 않아도되므로 바람직하지 않은 동작입니다.부팅시 neo4j 시작 방지 (Ubuntu 14.04)

여기에 대한 init.d 스크립트가 있습니다. 내 필요에 맞게이 스크립트를 편집해야한다고 생각하십니까? 이 일을 어떻게 하죠? 더 간단한 대안이 있습니까? 가능한 경우이 코드를 수정하지 않는 것이 좋습니다.

#! /bin/sh 

PATH=/sbin:/usr/sbin:/bin:/usr/bin 
DESC="Neo4j Graph Database" 
NAME=neo4j 
DAEMON=/var/lib/$NAME/bin/$NAME 
DAEMON_ARGS="start" 
PIDFILE=/var/run/$NAME.pid 
SCRIPTNAME=/etc/init.d/$NAME-service 

# Exit if the package is not installed 
[ -x "$DAEMON" ] || exit 0 

# Read configuration variable file if it is present 
[ -r /etc/default/$NAME ] && . /etc/default/$NAME 

# Load the VERBOSE setting and other rcS variables 
. /lib/init/vars.sh 

# Define LSB log_* functions. 
. /lib/lsb/init-functions 

do_start() 
{ 
    # Return 
    # 0 if daemon has been started 
    # 1 if daemon was already running 
    # 2 if daemon could not be started 
    start-stop-daemon --chuid ${NEO_USER} --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ 
     || return 1 
    start-stop-daemon --chuid ${NEO_USER} --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ 
     $DAEMON_ARGS \ 
     || return 2 
    # Copy the Neo4j PID to the sytem's PID store 
    cp /var/lib/${NAME}/data/neo4j-service.pid $PIDFILE 
} 

do_stop() 
{ 
    # Return 
    # 0 if daemon has been stopped 
    # 1 if daemon was already stopped 
    # 2 if daemon could not be stopped 
    # other if a failure occurred 
    start-stop-daemon --chuid ${NEO_USER} --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE 
    RETVAL="$?" 
    [ "$RETVAL" = 2 ] && return 2 

    start-stop-daemon --chuid ${NEO_USER} --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON 
    [ "$?" = 2 ] && return 2 
    # Many daemons don't delete their pidfiles when they exit. 
    rm -f $PIDFILE 
    return "$RETVAL" 
} 

# Ensure that the NEO_USER is set to a useful default. 
[ -n "${NEO_USER}" ] || NEO_USER=$NAME 

case "$1" in 
    start) 
    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" 
    do_start 
    case "$?" in 
     0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 
     2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 
    esac 
    ;; 
    stop) 
    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" 
    do_stop 
    case "$?" in 
     0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 
     2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 
    esac 
    ;; 
    status) 
     status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? 
     ;; 
    restart|force-reload) 
    log_daemon_msg "Restarting $DESC" "$NAME" 
    do_stop 
    case "$?" in 
     0|1) 
     do_start 
     case "$?" in 
      0) log_end_msg 0 ;; 
      1) log_end_msg 1 ;; # Old process is still running 
      *) log_end_msg 1 ;; # Failed to start 
     esac 
     ;; 
     *) 
     # Failed to stop 
     log_end_msg 1 
     ;; 
    esac 
    ;; 
    *) 
    echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 
    exit 3 
    ;; 
esac 
exit 0 

답변

7

Indepently neo4j의 당신은 init.d를 기반으로 서비스를 관리 할 수 ​​update-rc.d 명령을 사용할 수 있습니다

update-rc.d -f neo4j-service remove 
+0

이 단순히 그래, 스크립트를 제거? 'sudo service neo4j-service (start | stop | reload | restart)'기능을 유지하려면 어떻게해야합니까? – ianks

+1

아니요, 이것은 다양한 런레벨 디렉토리에 대한 심볼릭 링크를 제거해야합니다. 스크립트 자체는 /etc/init.d에 보관해야합니다. –