Простой сервер, который запускает скрипт и отвечает

Простой сервер, который запускает скрипт и отвечает

Мне нужен работающий сервер, который может:

  1. Отдохни звонок. Он запускает сценарий, когда делается звонок
  2. Скрипт проверяет, запущена ли база данных.
  3. Если запущено, то ответьте клиенту, иначе Successответьте клиенту, что произошел сбой

Я не хочу использовать Apache или любой другой крупный веб-сервер. Даже простые скрипты, работающие на порту, подойдут. Я знаю, python -m SimpleHTTPServerно предполагаю, что он обеспечивает только доступ к файлам.

Я могу написать простую программу на Java, которая работает на порту и отвечает, но мне нужно простое решение.

решение1

Одна из самых тривиальных служб, которую я могу себе представить, — это запуск одной из xinetd. Это имеет то преимущество, что сам xinetd относительно легкий, но все равно будет обрабатывать все сетевые вещи для вас, включая ведение журнала и ограничения безопасности, такие как ограничение запросов, TCP-обертки и т. д.

Установите xinetd, если он еще не установлен, и определите пользовательскую службу, например /etc/xinetd.d/helloworld:

service helloworld
{
    disable         = no
    port            = 1234
    socket_type     = stream
    protocol        = tcp
    wait            = no
    user            = nobody
    server          = /usr/local/bin/hello-world.sh
    server_args     = test
    instances       = 1
    type            = unlisted
}

Перезагрузите/перезапустите xinetd и вы сможете протестировать его с помощью telnet localhost 1234.

На странице руководства man xinetd.confимеется довольно хорошее описание доступных опций.

решение2

Я бы сделал это в BASH с помощью нескольких простых ncкоманд:

#!/bin/bash

nc -k -l -p PORT > tempfile

while true
do
    if cat tempfile | grep request;
    then
        # Execute checker script
        # Reply back with nc
        : > tempfile # Clear tempfile
    fi
    sleep 1
done

Это потребует настройки клиента ncтакже. Возможно, настройка ncкоманды прослушивания на клиенте также необходима для получения ответа Success.

Этот скрипт далек от завершения, и вам также следует написать для него клиент, но он может дать вам некоторые идеи.

Основное здесь — использование nc. С его помощью можно настраивать простые клиент-серверные архитектуры.

решение3

Я столкнулся с этим, когда искал похожее решение:Goexpose.

Позволяет запускать ряд задач, включая shell, на основе HTTP-вызовов.

Связанный контент