Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Shell Script über xinetd steuern
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
Gucky_der_Mausbiber
Guru
Guru


Joined: 10 Apr 2005
Posts: 359
Location: Wetzlar, Hessen

PostPosted: Tue Jan 10, 2012 11:59 pm    Post subject: Shell Script über xinetd steuern Reply with quote

Nabend,

ich habe folgendes Problem: Ich nutze zuhause Steckdosenleiste die sich über USB schalten lassen. Zur Steuerung habe ich auf meinem gentoo-Server folgendes Script
Code:
#!/bin/bash

if [ $2 = "0" ] ; then
 leiste="01:01:4c:7c:43"
else
 leiste="01:01:4c:88:13"
fi

case "$1" in
on)
   /usr/bin/sispmctl -q -D $leiste -o $3
;;
off)
   /usr/bin/sispmctl -q -D $leiste -f $3
;;
esac

/usr/bin/sispmctl -nqg $3 -D $leiste
Das ganze funktioniert von der Kommandozeile aus auch sehr gut. Jetzt möchte ich aber in Zukunft das ganze über meine lokale Intranet-Seite, bzw. über Smartphone-Apps steuern können. Zuerst dachte ich daran mit sudo zu arbeiten und das Script direkt von php aus aufzurufen. Nach langem lesen im Internet habe ich diese Idee dann aus verschiedenen Gründen verworfen. Stattdessen wird im Internet immer wieder geraten das ganze über xinetd laufen zu lassen um dann per php netsockets oder einem telnet-Client darauf zugreifen zu können.
Diese Idee klingt einfach gut und würde mir diverse Steuerungsmöglichkeiten eröffnen.
Okay, mal abgesehen davon das ich noch keine Ahnung habe wie ich das mit den verschiedenen Variabeln machen muss die übergeben werden musste ich jetzt erstmal xinetd installieren und zum Laufen bekommen.
Gesagt getan, flux ein "emerge xinetd" und schon war alles installiert.
Jetzt habe ich versucht ein erstes Test-Script zum laufen zu bekommen. Ich habe mich dabei an folgende Anleitung gehalten http://www.troubleshooters.com/codecorn/sockets/
Das Problem ist das mein Script keine Daten zurück gibt.
Code:
server ~ # telnet 192.168.2.1 8111
Trying 192.168.2.1...
Connected to 192.168.2.1.
Escape character is '^]'.
Connection closed by foreign host.

Laut der Anleitung sollte der Fehler demnach im Script stecken, aber ich finde da keinen:
Code:
#!/bin/bash
/bin/echo -n "Hello World:" | /usr/bin/tee /tmp/log.log
/bin/date | /usr/bin/tee -a /tmp/log.log

Auch lasse ich das Script zum test als root ausführen, an Berechtigungen kann es also kaum liegen.
Ich bin einfach überfragt und irgendwie finde ich speziell zu dem Thema xinetd & Shell-Scripte nicht sonderlich viele nützliche Infos.

Kann mir bitte irgendwer helfen den Fehler zu finden?
_________________
intel quad core, nvidia 8800gts, intel hd audio+sb live, gnome 2.24
Back to top
View user's profile Send private message
Gucky_der_Mausbiber
Guru
Guru


Joined: 10 Apr 2005
Posts: 359
Location: Wetzlar, Hessen

PostPosted: Sat Jan 21, 2012 11:05 am    Post subject: Reply with quote

Hat keiner eine Idee wo der Fehler liegen könnte, bzw. wie ich ihn finden kann?
_________________
intel quad core, nvidia 8800gts, intel hd audio+sb live, gnome 2.24
Back to top
View user's profile Send private message
thrashed
Apprentice
Apprentice


Joined: 01 Sep 2004
Posts: 292

PostPosted: Sat Jan 21, 2012 6:13 pm    Post subject: Reply with quote

wie sieht denn deine xinet.d aus, also dein script unter /etc/xinet.d z.bsp: /etc/xinet.d/deinscript
ich brauch da auch immer 3 anläufte bis es funktioniert :oops:
Back to top
View user's profile Send private message
Gucky_der_Mausbiber
Guru
Guru


Joined: 10 Apr 2005
Posts: 359
Location: Wetzlar, Hessen

PostPosted: Sun Feb 19, 2012 7:14 pm    Post subject: Reply with quote

Nabend,

so hat leider ne ganze Weile gedauert bis ich antworten konnte, aber gab zwischenzeitlich wichtigere Probleme.
Jetzt wollte ich das Thema xinetd & Shell-Script nochmal angehen und bin wieder beim gleichen Fehler gelandet.

Hier erstmal mein Script welches laufen sollte :
Code:
#!/bin/bash
/bin/echo -n "Hello World:" | /usr/bin/tee /tmp/log.log
/bin/date | /usr/bin/tee -a /tmp/log.log


meine /etc/conf.d/xinetd
Code:
# /etc/conf.d/xinetd: config file for /etc/init.d/xinetd

XINETD_OPTS="-stayalive -reuse"


hier die entsprechende Datei /etc/xinetd.d/hello
Code:
# default: on
# description: Hello World socket server
service hello
{
   port            = 3333
   socket_type     = stream
   wait            = no
   user            = root
   server          = /home/xbmc/hello.sh
   log_on_success  += USERID
   log_on_failure  += USERID
   disable         = no
}


und das ganze habe ich auch unter /etc/services eingetragen
Code:

# Local services

hello           3333/tcp                        # hello tutorial, delete when finished


Ich blicke wirklich nicht mehr durch, starten von xinetd geht ohne Probleme
Code:
server ~ # /etc/init.d/xinetd restart
 * Stopping xinetd ...                                                                                                                               [ ok ]
 * Starting xinetd ...                                                                                                                               [ ok ]


aber wenn ich versuche das Script zu starten geht nichts ....
Code:
server ~ # telnet 192.168.2.1 3333
Trying 192.168.2.1...
telnet: Unable to connect to remote host: Connection refused


Ohne Angabe des Ports komme ich aber auch nur unwesentlich weiter ....
Code:
server ~ # telnet 192.168.2.1
Trying 192.168.2.1...
Connected to 192.168.2.1.
Escape character is '^]'.
Connection closed by foreign host.


Wie damals habe ich immer noch keine Ahnung was ich falsch mache oder welche Möglichkeiten ich sonst noch habe ein Script übers Netzwerk zu steuern. Das direkte ausführen der Scripts auf dem Server über php scheint ja nicht wirklich die beste Lösung zu sein.

Also nochmal an alle, kann mir bitte jemand dabei helfen? Mir sagen was ich falsch mache? Oder wie ich sonst ans Ziel kommen kann.

Danke.
_________________
intel quad core, nvidia 8800gts, intel hd audio+sb live, gnome 2.24
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum