以下を実行するサーバーが必要です。
- ブレーキコールに答えてください。呼び出されると、スクリプトがトリガーされます。
- このスクリプトは、データベースが実行されていることを確認します。
- クライアントが実行されている場合は応答し、そうでなければ
Success
応答は失敗します。
私はApacheや他の主要なWebサーバーを使用したくありません。ポートで実行される単純なスクリプトも機能します。わかりました。python -m SimpleHTTPServer
しかし、ファイルアクセスのみを提供していると思います。
ポート上で実行され応答する単純なJavaプログラムを書くことができますが、いくつかの簡単な解決策を探しています。
答え1
私が考えることができる最もマイナーなサービスの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
成功した応答を受信するには、クライアントでリスニングコマンドを設定する必要があります。
スクリプトはまだ完成していないため、クライアントを作成する必要がありますが、いくつかのアイデアを得ることができます。
ここで最も基本的なことは、を使用してnc
単純なクライアント - サーバーアーキテクチャを構築できることです。
答え3
同様の解決策を探している間にこの問題が見つかりました。露出する。
シェルを含むHTTP呼び出しに基づいて多くの操作をトリガーできます。