Написать многопоточный демон на bash
73 PLNИтак, есть скрипт 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-интерпретатора.
По срокам - чем быстрее, тем лучше.
Opinia zleceniodawcy o współpracy z Aleksey T.
Написать многопоточный демон на bashБыстро, четко, рекомендую
![]()
Opinia freelancera o współpracy z ze zleceniodawcą
Написать многопоточный демон на bashЧеткое ТЗ, быстрая проверка и оплата, рекомендую к сотрудничеству! 🙂
-
Oferta, która wygrała1 dzień73 PLN
3381 213 0 Oferta, która wygrała1 dzień73 PLNМожно написать на .Net core, более читабельный код будет
Aktualne zlecenia dla freelancerów w kategorii Aplikacje desktopowe
Dodać przerwy 10-30 sekund między wysyłkami e-mailiWitam! Szukam doświadczonego programisty 1C / BAS (BAF) do szybkiego rozwiązania problemu technicznego z wysyłką maili.Istota problemu: Używamy programu księgowego BAF (Business Automation Framework), edycja 2.0. Raz w miesiącu pojawia się potrzeba masowego wysyłania klientom… Programowanie stron internetowych, Aplikacje desktopowe ∙ 4 dni 10 godzin temu ∙ 10 ofert |
Rewersowe inżynieria konsolowych narzędzi do ankietowania kontrolerów SSD (Flash ID)1. Cel pracy Wydzielenie interfejsu programowania aplikacji (API) do interakcji z kontrolerami SSD/NVMe z dostarczonego zestawu narzędzi konsolowych (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron itd.). Wynikiem ma być działający kod w języku C/C++ lub dokładna… C i C++, Aplikacje desktopowe ∙ 4 dni 22 godziny temu ∙ 5 ofert |
Modyfikacja w pracy emulatora
163 PLN
Witaj. Ściągnąłem z Internetu emulator automatu do gier gaminator cf final. Bardzo mi się podoba, ale są tam niedociągnięcia. Jest panel administracyjny, ale otwiera się swobodnie, a nie zamyka w ogóle. Zamyka się tylko razem z aplikacją. A dane po zmianach w panelu… Aplikacje desktopowe ∙ 12 dni 11 godzin temu ∙ 10 ofert |