Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: [Решено] Авто запуск Beanstalkd Worker  (Прочитано 1505 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gordon Freeman

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
[Решено] Авто запуск Beanstalkd Worker
« : 19 Октябрь 2017, 21:49:50 »
Здравствуйте!

Не оставляйте без внимания мой вопрос, если вы хоть что нибудь знаете расскажите.
Уже несколько недель пытаюсь решить проблему и не как не могу..

В системе стоит beanstalkd - сервер очередей...
Но это просто очередь заданий, а то что они должны выполнять это отдельный скрипт, который должен работать в фоне, как обычное приложение или демон... Проблема таки в том что не могу понять как запустить такой скрипт.
Сам код который будет выполнятся уже есть в ручную запускал в консоле все работает, но мне надо что бы запускался автоматом при запуске системы...
« Последнее редактирование: 20 Октябрь 2017, 22:28:06 от Gordon Freeman »

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #1 : 20 Октябрь 2017, 09:06:01 »
Так как не указана версия Ubuntu, то вариант реализации зависит от вашей версии
1) Для систем с initd создать скрипт запуска и добавить в запуск при старте системы (14.04 и менее)
2) Создать конфигурацию для systemd (для 14.10 и выше) и добавить в автозапуск
3) Общие:
 а) если вы используете графическую оболочку - добавить скрипт в запуск при логине
 б) прописать скрипт в конфиг того shell, которым пользуетесь (если используете консоль)
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн Gordon Freeman

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #2 : 20 Октябрь 2017, 09:20:51 »
Так как не указана версия Ubuntu, то вариант реализации зависит от вашей версии
Ubuntu 16.04.1 LTS (GNU/Linux 2.6.32-042stab120.19 x86_64)

Для систем с initd создать скрипт запуска и добавить в запуск при старте системы (14.04 и менее)
В интернете столько всякого гавна, что не понятно что правильно а что нет... Подскажете простой пример запуска php скрипта?

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #3 : 20 Октябрь 2017, 14:20:11 »
Gordon Freeman, Тогда сервис для Systemd

http://help.ubuntu.ru/wiki/systemd - общая инфа. По ссылкам на страничке более подробно все расписано.
Ну а сам Exec будет иметь примерно вид

Exec=/usr/bin/php /path/to/script

Еще есть вариант - добавить в крон
Код: Bash
  1. @reboot /usr/bin/php /path/to/script
  2.  

Ну и сам сервис /lib/systemd/system/service-beanstalkd.service
Код: Bash
  1. [Unit]
  2. Description=Start beanstalkd
  3. After=systemd-remount-fs.service
  4. Requires=systemd-remount-fs.service
  5.  
  6. [Service]
  7. ExecStart=/usr/bin/php /path/to/script
  8. Type=oneshot
  9. RemainAfterExit=yes
  10. Restart=always
  11.  
  12. [Install]
  13. WantedBy=multi-user.target
  14.  
После чего выполняем:
Код: Bash
  1. sudo systemctl enable service-beanstalkd.service
  2. sudo systemctl start service-beanstalkd.service
  3.  
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн Gordon Freeman

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #4 : 20 Октябрь 2017, 19:19:08 »
получился вот такое содержимое файла
[Unit]
Description=Beanstalkd Worker - Actions
After=systemd-remount-fs.service
Requires=systemd-remount-fs.service
 
[Service]
ExecStart=/usr/bin/php /var/www/html/pdm/actions.php
Type=oneshot
RemainAfterExit=yes
Restart=always
 
[Install]
WantedBy=multi-user.target

Добавил файл в /etc/systemd/system
символьная ссылка создана в multi-user.target.wants

В консоле набераю
sudo systemctl status service-beanstalkd.service
выдает ошибку
service-beanstalkd.service - Beanstalkd Worker - Actions
   Loaded: error (Reason: Invalid argument)
   Active: inactive (dead)

Если набераю в консоле
sudo systemctl start service-beanstalkd.service
выдает ошибку
Failed to start service-beanstalkd.service: Unit service-beanstalkd.service is not loaded properly: Invalid argument.
See system logs and 'systemctl status service-beanstalkd.service' for details.

Я же могу ее потом добавить в автозагрузку?
sudo update-rc.d service-beanstalkd.service enable
« Последнее редактирование: 20 Октябрь 2017, 19:22:02 от Gordon Freeman »

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #5 : 20 Октябрь 2017, 19:30:25 »
Gordon Freeman,
Код: Bash
  1. sudo systemctl enable service-beanstalkd.service
  2.  
Это и добавляет его в автозагрузку. Вы сделали все в порядке, в котором я указал? И да, если не может стартануть - после этого покажите вывод
Код: Bash
  1. systemctl status service-beanstalkd.service
  2.  
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн ARTGALGANO

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1936
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #6 : 20 Октябрь 2017, 19:50:59 »
а
sudo systemctl daemon-reloadсделали?

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2084
  • Lubuntu 16.04 LTS
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #7 : 20 Октябрь 2017, 20:13:23 »
выдает ошибку [...] Invalid argument.

Оффлайн Gordon Freeman

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #8 : 20 Октябрь 2017, 20:43:37 »
Gordon Freeman,
Код: Bash
  1. sudo systemctl enable service-beanstalkd.service
  2.  
Это и добавляет его в автозагрузку. Вы сделали все в порядке, в котором я указал? И да, если не может стартануть - после этого покажите вывод
Код: Bash
  1. systemctl status service-beanstalkd.service
  2.  

Вот содержимое файла
[Unit]
Description=Beanstalkd Worker - Actions
After=systemd-remount-fs.service
Requires=systemd-remount-fs.service
 
[Service]
ExecStart=/usr/bin/php "/var/www/html/pdm/actions.php"
Type=oneshot
RemainAfterExit=yes
Restart=always
 
[Install]
WantedBy=multi-user.target

Файл назвал actions.service, закинул его в /etc/systemd/system

вот какие ошибки были
http://i4.imageban.ru/out/2017/10/20/67f4617f3f476c1b53ad179950a30c03.png

.............................................................

Если тот же файл залить в папку /lib/systemd/system, то вот ошибки
http://imageban.ru/show/2017/10/20/526e24f09109162a1be7f2a8342685d0/png


Пользователь добавил сообщение 20 Октябрь 2017, 20:46:25:
а
sudo systemctl daemon-reloadсделали?

А зачем?????
Я же его добавляю, а не обновляю

Цитировать
Правила форума
1.5. Для добавления графических изображений в сообщения требуется использовать внешние сервисы. Подробную инструкцию, а так же список рекомендованных и запрещенных сервисов можно посмотреть в «Руководстве по добавлению изображений на форум»

+10% за повторную вставку полноразмерного изображения после полученного замечания!


Цитировать
Правила форума
2. На форуме ЗАПРЕЩЕНО
2.13. Самовольное модерирование форума, в том числе публикация замечаний другим пользователям, удаление примечаний и правок, внесённых администрацией форума и т.д.  Если вы считаете, что необходимо принять административные меры (закрыть тему, удалить сообщение, привлечь к ответственности участника форума и т.п.), не нужно об этом писать в теме — воспользуйтесь кнопкой «Сообщить модератору».

+30%
--HP
« Последнее редактирование: 20 Октябрь 2017, 20:55:49 от Haron Prime »

Оффлайн ARTGALGANO

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1936
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #9 : 20 Октябрь 2017, 21:04:24 »
Gordon Freeman,  сустемд нужно обновить для поиска новых или измененных юнитов

Оффлайн Gordon Freeman

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #10 : 20 Октябрь 2017, 21:09:15 »
Gordon Freeman,  сустемд нужно обновить для поиска новых или измененных юнитов

Ааааааааааааааааааа, так а я же не знал зачем это....
Но все равно ошибки те же.

Оффлайн ARTGALGANO

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1936
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #11 : 20 Октябрь 2017, 21:45:05 »

Gordon Freeman, у вас еще скрипт в /etc/init.d/
update-rc.d:error: actions default-start contains no runlevels, aborting
пропишите заголовок
#!/bin/sh
### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       
### END INIT INFO


 или удалите, оставьте ток системд юнит

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #12 : 20 Октябрь 2017, 21:48:53 »
Gordon Freeman, Вы можете делать все по инструкции, а не в своей трактовке и потом писать об ошибках? Покажите ошибки, которые возникют в сервисе, что я описал.
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 20 Октябрь 2017, 21:58:01 от EvangelionDeath »
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн Gordon Freeman

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #13 : 20 Октябрь 2017, 22:01:06 »
Вы можете делать все по инструкции, а не в своей трактовке и потом писать об ошибках?

EvangelionDeath Походу я что то пропустил....
1. Вы дали ссылку на общую инфу про Systemd
2. Потом предложили вариант с добавлением в Cron
3. И потом только пример файла service-beanstalkd.service
4. И выполнить две команды....

Ну так где инструкция????

Покажите ошибки, которые возникют в сервисе, что я описал.
Та я же давал ссылки на картинки....

Кроме того хочу обратить Ваше внимание на то, что пути должны быть относительными, символические ссылки не допустимы
Так они же сам создаются...




Пользователь добавил сообщение 20 Октябрь 2017, 22:06:39:
Все класссс!!!!!!!!!!!!

Запускается, даже автоматически. То что доктор прописал...
Но нарисовалась одна проблема...

Этот сервис запускается раньше чем сама система beanstalkd, из-за этого в лог файлах ошибка
Error displaying the error page: Application Instantiation Error: Socket error 111: Connection refused (connecting to localhost:11300)
Можно же как то поменять очередность запуска???
« Последнее редактирование: 20 Октябрь 2017, 22:06:39 от Gordon Freeman »

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #14 : 20 Октябрь 2017, 22:10:43 »
Этот сервис запускается раньше чем сама система beanstalkd, из-за этого в лог файлах ошибка
Там выше под спойлером. Там уже описан порядок правильно.
А по поводу путей - нельзя в самом сервисе писать пути с символическими ссылками
« Последнее редактирование: 20 Октябрь 2017, 22:19:32 от EvangelionDeath »
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

 

Страница сгенерирована за 0.284 секунд. Запросов: 22.