Наверное у каждого в жизни встречались ситуации, когда казалось бы простая задача отбирала кучу времени и сил. Горы перелопаченных форумов — а результата ноль. Для меня таким «крепким орешком» оказалась установка Beanstalk на виртуальную машину с CentOS7.
А решение оказалось очень простым.
Сначала необходимо создать папку, где будет находиться Beanstalk. У меня это папака
/opt/beanstalkd/
Для скачивания дистрибутива переходим в созданную папку и выполняем команду
Если у вас команда wget отсутствует в системе — ее легко установить
Готово. Осталось только распаковать архив
Теперь преобразуем дистрибутив в готовую программу. Переходим в распакованную папку (у меня это beanstalkd-1.10) и выполняем команду
Если у вас не установлен компилятор, то при выполнении этой команды возникнет ошибка. Установим его
И снова попробуем скомпилировать Beanstalk. Если все прошло успешно, то у вас должен появиться файл beanstalkd.
Теперь beanstalk можно запускать прямо с консоли. А можно для удобства написать небольшой скрипт
Сохраните его в файле с расширением sh, скажем beanstalkd.init.sh. Тогда запуск сервиса будет осуществляться командой
А решение оказалось очень простым.
Шаг 1: Качаем дистрибутив
Сначала необходимо создать папку, где будет находиться Beanstalk. У меня это папака
/opt/beanstalkd/
Для скачивания дистрибутива переходим в созданную папку и выполняем команду
wget https://github.com/kr/beanstalkd/archive/v1.10.tar.gz
Если у вас команда wget отсутствует в системе — ее легко установить
sudo yum install wget
Готово. Осталось только распаковать архив
tar -xzf v1.10.tar.gz
Шаг 2: Сборка сервиса
Теперь преобразуем дистрибутив в готовую программу. Переходим в распакованную папку (у меня это beanstalkd-1.10) и выполняем команду
make
Если у вас не установлен компилятор, то при выполнении этой команды возникнет ошибка. Установим его
sudo yum install gcc
И снова попробуем скомпилировать Beanstalk. Если все прошло успешно, то у вас должен появиться файл beanstalkd.
Шаг 3: Пишем скрипт для запуска/остановки Beanstalk
Теперь beanstalk можно запускать прямо с консоли. А можно для удобства написать небольшой скрипт
#!/bin/bash
clear
# Default options, overruled by items in sysconfig
BEANSTALKD_ADDR=127.0.0.1
BEANSTALKD_PORT=11300
exec="/opt/beanstalkd/beanstalkd-1.10/beanstalkd"
options="-l ${BEANSTALKD_ADDR} -p ${BEANSTALKD_PORT}
start() {
echo -n $"Starting beanstalk: "
nohup $exec $options > /dev/null 2>&1 &
retval=$?
return $retval
}
stop() {
echo -n $"Stopping beanstalk: "
kill -9 $(pgrep beanstalkd)
retval=$?
return $retval
}
restart() {
stop
start
}
case "$1" in
start)
start && exit 0
$1
;;
stop)
stop || exit 0
$1
;;
restart)
restart || exit 0
$1
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 2
esac
Сохраните его в файле с расширением sh, скажем beanstalkd.init.sh. Тогда запуск сервиса будет осуществляться командой
sh beanstalkd.init.sh