
Preciso ter um servidor em execução que possa:
- Faça uma chamada de descanso. Ele aciona um script quando uma chamada é feita
- O script verifica se o banco de dados está em execução ou não.
- Se estiver em execução, responda ao cliente, caso
Success
contrário, responda como falha
Não desejo usar o Apache ou qualquer outro servidor web importante. Até mesmo scripts simples executados na porta servirão. Estou ciente, python -m SimpleHTTPServer
mas acho que apenas fornece acesso a arquivos.
Posso escrever um programa Java simples que roda em uma porta e responde, mas estou procurando uma solução simples
Responder1
Um dos serviços mais triviais que posso imaginar é executar um no xinetd. Isso tem a vantagem de que o xinetd em si é relativamente leve, mas ainda irá lidar com todo o material de rede para você, incluindo registro e restrições de segurança, como limitação de solicitações, wrappers TCP, etc.
Instale o xinetd, quando ainda não estiver instalado e defina um serviço personalizado como /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
}
Recarregue/reinicie o xinetd e você poderá testar com um arquivo telnet localhost 1234
.
A página do manual man xinetd.conf
tem uma boa descrição das opções disponíveis.
Responder2
Eu faria isso no BASH com a ajuda de alguns nc
comandos simples:
#!/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
Isso exigiria a configuração do cliente nc
também. Talvez também seja necessário configurar um nc
comando de escuta no cliente para receber a resposta de sucesso.
Este script está longe de estar completo e você também deve escrevê-lo para o cliente, mas pode lhe dar algumas idéias.
O básico aqui é o uso de nc
. Com a ajuda dele, você pode configurar arquiteturas cliente-servidor simples.
Responder3
Encontrei isso enquanto procurava uma solução semelhante:Goexpor.
Permite disparar uma série de tarefas incluindo shell, com base em chamadas HTTP.