inetdサービスにアクセスするには?

inetdサービスにアクセスするには?

そのため、この例に基づいて単純なinetdエラーロギングサービスを作成しました。https://en.wikipedia.org/wiki/Inetd

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
  const char *fn = argv[1];
  FILE *fp = fopen(fn, "a+");

  if (fp == NULL) 
    exit(EXIT_FAILURE);

  char str[4096];
  /* inetd passes its information to us in stdin. */
  while (fgets(str, sizeof str, stdin)) {
    fputs(str, fp);
    fflush(fp);
  }
  fclose(fp);
  return 0;
}

この行を次に追加します。/etc/services/

errorLogger 9999/udp

この行は/etc/inetd.conf

errorLogger dgram udp wait root /usr/local/bin/errlogd errlogd /tmp/logfile.txt

今どのようにアクセスしますか?ローカルネットワークのRaspberry Piでサービスを設定しました。 UDPポート9999にアクセスするにはクライアントプログラムを作成する必要がありますか、それともSSHを介して実行できますか?

私はすでに試しました。

ssh pi@raspberrypi -p 9999

しかし、それは言うssh: connect to host raspberrypi port 9999: Connection refused

私もsystemdサービスをリロードしました

sudo service inetd reload

しかし、これは役に立ちません。

ベストアンサー1

ログサービスについて言及したので、以下を使用してログサービスに書き込むことができますlogger

logger --udp --port 9999 --server 127.0.0.1 'test msg'

別の汎用ユーティリティは次のとおりですsocat

echo 'test msg' | socat -u - udp-sendto:127.0.0.1:9999

おすすめ記事