そのため、この例に基づいて単純な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