Остановка / перезагрузка Gearmand

Я установил Gearman Job Server (он же Gearmand) 1.0.6 на мою Ubuntu:

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

Гугл не помогает … возможно поиск в неверном направлении. Можете ли вы помочь мне заставить его работать, пожалуйста? 🙂

2

Решение

Хорошо, я нашел решение своей проблемы. Я обнаружил, что в 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
3

Другие решения

Просто сделайте следующее в /etc/init.d/gearman-server в функции остановки:

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

По вопросам рекламы [email protected]