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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

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

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

Оффлайн Gordon Freeman

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

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

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

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #1 : 20 Октября 2017, 09:06:01 »
Так как не указана версия Ubuntu, то вариант реализации зависит от вашей версии
1) Для систем с initd создать скрипт запуска и добавить в запуск при старте системы (14.04 и менее)
2) Создать конфигурацию для systemd (для 14.10 и выше) и добавить в автозапуск
3) Общие:
 а) если вы используете графическую оболочку - добавить скрипт в запуск при логине
 б) прописать скрипт в конфиг того shell, которым пользуетесь (если используете консоль)
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн 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

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

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

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

Еще есть вариант - добавить в крон
Код: (bash) [Выделить]
@reboot /usr/bin/php /path/to/script

Ну и сам сервис /lib/systemd/system/service-beanstalkd.service
Код: (bash) [Выделить]
[Unit]
Description=Start beanstalkd
After=systemd-remount-fs.service
Requires=systemd-remount-fs.service

[Service]
ExecStart=/usr/bin/php /path/to/script
Type=oneshot
RemainAfterExit=yes
Restart=always

[Install]
WantedBy=multi-user.target
После чего выполняем:
Код: (bash) [Выделить]
sudo systemctl enable service-beanstalkd.service
sudo systemctl start service-beanstalkd.service
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн 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

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #5 : 20 Октября 2017, 19:30:25 »
Gordon Freeman,
Код: (bash) [Выделить]
sudo systemctl enable service-beanstalkd.service
Это и добавляет его в автозагрузку. Вы сделали все в порядке, в котором я указал? И да, если не может стартануть - после этого покажите вывод
Код: (bash) [Выделить]
systemctl status service-beanstalkd.service
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн ARTGALGANO

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

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.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) [Выделить]
sudo systemctl enable service-beanstalkd.service
Это и добавляет его в автозагрузку. Вы сделали все в порядке, в котором я указал? И да, если не может стартануть - после этого покажите вывод
Код: (bash) [Выделить]
systemctl status service-beanstalkd.service

Вот содержимое файла
[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

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #12 : 20 Октября 2017, 21:48:53 »
Gordon Freeman, Вы можете делать все по инструкции, а не в своей трактовке и потом писать об ошибках? Покажите ошибки, которые возникют в сервисе, что я описал.
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 20 Октября 2017, 21:58:01 от EvangelionDeath »
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн 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

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Авто запуск Beanstalkd Worker
« Ответ #14 : 20 Октября 2017, 22:10:43 »
Этот сервис запускается раньше чем сама система beanstalkd, из-за этого в лог файлах ошибка
Там выше под спойлером. Там уже описан порядок правильно.
А по поводу путей - нельзя в самом сервисе писать пути с символическими ссылками
« Последнее редактирование: 20 Октября 2017, 22:19:32 от EvangelionDeath »
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

 

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