【问题标题】:Stopping/Rebooting Gearmand停止/重启 Gearmand
【发布时间】:2015-05-20 15:38:52
【问题描述】:

我已经在我的 Ubuntu 上安装了 Gearman Job Server(又名 Gearmand)1.0.6:

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.2 LTS
Release:        14.04

我还安装了 gearman-tools、libgearman-dev。 尝试使用命令重启 Gearmand:

/etc/init.d/gearman-job-server restart

但我收到一个错误:

 No /usr/sbin/gearmand found running; none killed.
 /usr/sbin/gearmand already running.

当我试图阻止它时也会发生同样的情况:

/etc/init.d/gearman-job-server stop

回复:No /usr/sbin/gearmand found running; none killed.

/etc/init.d/gearman-job-server 代码为:

#!/bin/sh

# Gearman server and library
# Copyright (C) 2008 Brian Aker, Eric Day
# All rights reserved.
#
# Use and distribution licensed under the BSD license.  See
# the COPYING file in this directory for full text.

### BEGIN INIT INFO
# Provides:          gearman-job-server
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable gearman job server
### END INIT INFO

prefix=/usr
exec_prefix=${prefix}
NAME=gearmand
DAEMON=${exec_prefix}/sbin/gearmand
PIDDIR=/var/run/gearman
PIDFILE=${PIDDIR}/gearmand.pid
GEARMANUSER="gearman"
PARAMS=""

test -x ${DAEMON} || exit 0

. /lib/lsb/init-functions

test -f /etc/default/gearman-job-server && . /etc/default/gearman-job-server

start()
{
  log_daemon_msg "Starting Gearman Server" "gearmand"
  if ! test -d ${PIDDIR}
  then
    mkdir ${PIDDIR}
    chown ${GEARMANUSER} ${PIDDIR}
  fi
  if start-stop-daemon \
    --start \
    --exec $DAEMON \
    -- --pid-file=$PIDFILE \
       --user=$GEARMANUSER \
       --daemon \
       --log-file=/var/log/gearman-job-server/gearman.log \
       $PARAMS 
  then
    log_end_msg 0
  else
    log_end_msg 1
    log_warning_msg "Please take a look at the syslog"
    exit 1
  fi
}

stop()
{
  log_daemon_msg "Stopping Gearman Server" "gearmand"
  if start-stop-daemon \
    --stop \
    --oknodo \
    --exec $DAEMON \
    --pidfile $PIDFILE
  then
    log_end_msg 0
  else
    log_end_msg 1
    exit 1
  fi
}

status()
{
    status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
}

case "$1" in

  start)
    start
  ;;

  stop)
    stop
  ;;

  status)
    status
  ;;

  restart|force-reload)
    stop
    start
  ;;

  *)
    echo "Usage: $0 {start|stop|restart|force-reload|status}"
  ;;

esac

谷歌没有帮助......也许搜索错误的方式。你能帮我让它工作吗? :)

【问题讨论】:

    标签: php ubuntu server jobs gearman


    【解决方案1】:

    好的,我找到了解决问题的方法。我发现 Gearman 有很多错误。问题是它没有创建 PID 表单暴发户,也没有使用来自/etc/default/gearman-job-server 的配置。希望它会帮助某人。 将/etc/init/gearman-job-server.conf 编辑为:

    # -*- upstart -*-
    
    # Upstart configuration script for "gearman-job-server".
    
    description "gearman job control server"
    
    start on (filesystem and net-device-up IFACE=lo)
    stop on runlevel [!2345]
    
    respawn
    expect fork
    
    pre-start script
        mkdir -p -m 0775 /var/run/gearman
        chown gearman:gearman /var/run/gearman
    end script
    
    script
        . /etc/default/gearman-job-server
        exec start-stop-daemon --start --exec /usr/sbin/gearmand -- $PARAMS
    end script
    

    【讨论】:

      【解决方案2】:

      只需在 /etc/init.d/gearman-server 中的 stop 函数处执行以下操作:

      #  if start-stop-daemon \
      #    --stop \
      #    --oknodo \
      #    --exec $DAEMON \
      #    --pidfile $PIDFILE
        if /usr/local/bin/gearadmin --shutdown
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-15
        • 1970-01-01
        • 2013-06-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-14
        • 1970-01-01
        • 2013-06-06
        相关资源
        最近更新 更多