Написать многопоточный демон на bash
900 UAHИтак, есть скрипт script1.php, который вызывается с параметрами: script1.php?id=1
Нужно написать демон под Centos7, который будет делать следующее:
1. Запускаем скрипт daemon.sh через ssh.
2. Демон запускает скрипт script3.php и получает в ответ такую строку: "1,5,147,2058" - т.е. набор номеров через запятую.
3. Демон создает столько потоков, сколько было номеров в той строке, и в каждом потоке запускает скрипт script1.php?id=1, где для параметра "id" подставляется очередной номер из этой последовательности.
Т.е. если от script3.php получена строка "1,5,147,2058", то будут запущены такие потоки:
script1.php?id=1
script1.php?id=5
script1.php?id=147
script1.php?id=2058
Номеров (а значит потоков) может быть и 1000 и 2000.
4. От каждого скрипта нужно дождаться ответ. Если скрипт завершился нормально, без ошибок, то ничего не делаем, а текстовый ответ скрипта (он написан для запуска в браузере) перенаправляем в пустоту. Если же запуск скрипта завершился ошибкой (503, "Server is temporarily unavailable" и т.д.), то дополнительно запускаем скрипт script2.php?id=1, где id - все тот же номер, который был использован для запуска скрипта script1.php
Что делает script2.php? Он просто логирует номера, которые завершились ошибкой сервера.
5. Итак, script1.php в текущем потоке выполнился (нормально или с ошибкой, неважно). Демон должен перезапустить его. И так он должен отслеживать все запущенные потоки, асинхронно (т.е. чтобы перезапустить скрипт в потоке, не нужно ждать когда завершаться скрипты в остальных потоках). И так бесконечно, до пункта 6.
6. Чтобы остановить демон, должна быть предусмотрена какая-то команда для терминала, или запуск какого-то второго скрипта daemon_stop.sh
7. Демон должен продолжать работу даже после закрытия терминала. А после открытия чтобы можно было продолжать наблюдать работу демона. Насколько я понимаю это делается через screen и ему подобные. Т.е. когда мы снова заходим на daemon.sh, то не запускаем его снова, а просто вновь видим его продолжающуюся работу.
8. Нужно придумать какой-то вывод в консоль, чтобы наблюдать за работой скрипта. Например такие показатели:
- количество запущенных потоков
- количество запусков скрипта script1.php по всем потокам за все время работы демона (должно накапливаться в какой-то переменной)
- в т.ч. количество положительных ответов по всем потокам за все время работы демона (должно накапливаться в какой-то переменной)
- в т.ч. количество аварийных завершений по всем потокам за все время работы демона (должно накапливаться в какой-то переменной)
Все 8 пунктов обязательны.
Очень желательно, чтобы демон был написан на bash. Или обоснуйте другие варианты.
Скрипты php будут находится в той же папке, что и daemon.sh. В скрипте должно быть предусмотрено автоопределение текущей папки и php-интерпретатора.
По срокам - чем быстрее, тем лучше.
Відгук замовника про співпрацю з Алексеєм Т.
Написать многопоточный демон на bashБыстро, четко, рекомендую
![]()
Відгук фрилансера про співпрацю з замовником
Написать многопоточный демон на bashЧеткое ТЗ, быстрая проверка и оплата, рекомендую к сотрудничеству! 🙂
-
Переможець1 день900 UAH
3381 213 0 Переможець1 день900 UAHМожно написать на .Net core, более читабельный код будет
Актуальні фриланс-проєкти в категорії Веб-програмування
Оновлення односторінкового сайту надання будівельних послуг
1000 UAH
Оновлення діючого односторінкового самописного сайту надання будівельних послуг Завдання: -Редизайн сайту -Додавання категорій послуг шляхом створення мультилендінгу на 6 категорій -Додавання до кожної категорії фото та опису робіт -Оптимізація реклами сайту Розгляну… Веб-програмування ∙ 14 годин 17 хвилин тому ∙ 70 ставок |
Допрацювання Front-end e-com сайта на OpencardПотрібно допрацювати front-end e-commerce сайту на OpenCart. Основні задачі: виправити візуальні баги, адаптивність під мобільні пристрої, покращити відображення карток товарів, категорій, кошика та сторінки оформлення замовлення. Очікується акуратна верстка, збереження… CMS, Веб-програмування ∙ 16 годин 7 хвилин тому ∙ 46 ставок |
Розробка форми збору лідів перед завантаженням програми (MODX)Сайт:bricscad-ukraine.com.uaCMS: MODXМета: Створити механізм збору лідів перед завантаженням програмного забезпечення для 3-х версій Windows, MacOS, Linux з сайту для подальшої обробки відділом продажів. Веб-програмування ∙ 19 годин 35 хвилин тому ∙ 29 ставок |
Видалити віруси з сайту і оновити плагіни (Wordpress)Потрібен WordPress-спеціаліст для технічного доопрацювання сайту Завдання: Очистити сайтhttps://www.mast-agency.com/ від вірусів/шкідливого коду, файлів; (на сайті вірус який робить сторінки і редіректи на чужий магазин) Оновити плагіни, щоб сайт працював і виглядав після… CMS, Веб-програмування ∙ 23 години 7 хвилин тому ∙ 69 ставок |
Зробити щоб листи про замовлення з магазину не потрапляли в спамЗараз є магазин на опенкарті, листи про замовлення потрапляють до спаму, треба зробити так щоб потрапляли в Вхідні (ukr.net gmail) перевірити. хостинг написав: Погана доставка електронної пошти може бути пов'язана з низькою репутацією відправника - IP або домену. У такому… PHP, Веб-програмування ∙ 1 день тому ∙ 46 ставок |