Xinetd Beispiel Eigener Dienst

Aus Synology Wiki
Dies ist die aktuellste Version dieser Seite. Sie hat keine bestätigte Version.

Eigenen Dienst für Xinetd erstellen

Über den Xinet Daemon kann man so ziemlich viel anstellen. So kann man jede Bash-Ausgabe auch auf den Browser anzeigen lassen. Als Beispiel übergebe ich die top-Anzeige direkt auf den Port 8111

Zur Anleitung

Diese Anleitung bezieht sich auf die DS211+ mit Xinetd 2.3.14-11 

Voraussetzung

/etc/services

Port des Dienstes eintragen:

##Eigener Dienst
topbash        8111/tcp     # topbash

/opt/etc/xinetd.d/topbash

Service definieren: [USER] durch einen vorhanden Benutzer ersetzen

service topbash
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = [USER]
server = /opt/bin/show.bash
}

/opt/bin/show.bash

Bashscript für top (Perl habe ich wegen der Formatierung benutzt)

#!/bin/bash
date | sed -e 's/$/\r/' | perl -pe 's/\r\n|\n|\r/\r\n/g'
echo "_________________________________________________________________" | sed -e 's/$/\r/' | perl -
pe 's/\r\n|\n|\r/\r\n/g'
topvar=/bin/bash /usr/bin/top -b -n 1 | head -15 | sed -e 's/$/\r/' | perl -pe 's/\r\n|\n|\r/\r\n/g'

 echo  $topvar
 exit

xinet Daemon

Den Xinet Daemon starten, bez. startet neu

/opt/etc/init.d/S10xinetd

Browser starten

top kann nun direkt im Browser abgefragt werden, ohne sich anzumelden. http://[IP-ADRESSE]:8111/

Fehler finden

Fehler können immer wieder auftreten. Hier sind die wichtigsten Befehle um den Xinet Dienst zu prüfen:

Xinet Dienst testen

Über das log kann man sehen ob der Daemon geschlossen (Exiting) wird. Das deutet auf eine falsche Konfiguration hin.

tail /var/log/messages

May 24 13:02:40 xinetd[4724]: Exiting...
May 24 13:04:22 xinetd[15315]: Exiting...

Mit -d kann man den xinetd im Debug-Modus starten. So sieht man detailierter ob man was falsches konfiguriert hat.

xinetd -d

Ob der Dienst läuft

Mit diesem Befehl kann man sehen ob der xinet Daemon überhaupt läuft

ps -aux | grep xinet

Port prüfen

Mit Netstat kann man schauen ob der Port auch wirklich abgehört wird:

netstat -tanp | grep 8111
tcp        0      0 0.0.0.0:8111            0.0.0.0:*               LISTEN      28368/xinetd