Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Daemons laufen nicht richtig über xinetd

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Software
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
bin4ry



Anmeldungsdatum: 13.04.2004
Beiträge: 2

BeitragVerfasst am: 13. Apr 2004 22:02   Titel: Daemons laufen nicht richtig über xinetd

Hey zusammen,

ich wollte diverse dienste von xinetd verwalten lassen. Dies wären ein apache2 daemon und ein mysql daemon. Meine xinetd.conf ist folgendermaßen aufgebaut:

Code:

defaults
{
   log_type        = FILE /var/log/xinetd.log
        log_on_success  = HOST EXIT DURATION
   log_on_failure   = HOST ATTEMPT
        only_from       = localhost
        instances       = 30
   cps      = 50 10

#
# The specification of an interface is interesting, if we are on a firewall.
# For example, if you only want to provide services from an internal
# network interface, you may specify your internal interfaces IP-Address.
#
   interface   = 127.0.0.1

}

includedir /etc/xinetd.d


Ich benutze darum die 'interface' und 'only_from' argumente, weil ich die beiden daemons nur für eine lokale php-testumgebung brauche und sie nur auf der loopback lauschen sollen.

Hier die jeweiligen einträge in /etc/xinetd.d/ für die beiden daemons:

apache
Code:

service http
{
   disable     = no
   socket_type = stream
   protocol    = tcp
   wait        = no
   user        = root
   server      = /usr/sbin/httpd2
        port        = 80
}



mysql
Code:

service mysql
{
   disable     = no
   socket_type = stream
   protocol    = tcp
   wait        = no
   user        = mysql
   server      = /usr/sbin/mysqld
}



Die beiden services hab ich vorher natürlich via runlevel editor vom starten durch init gehindert.

Wenn ich nun mit einem browser auf localhost zugreife kommt frolgende ausschrift:

(98)Address already in use: make_sock: could not bind to address [::]:80
no listening sockets available, shutting down
Unable to open logs


Meine frage: warum schafft es xinetd nicht den service an den port zu binden? Warum wird port 80 bereits benutzt? Ich hab doch apache2 disabled? Das selbe problem bei mysql. Er kann den service nicht auf port 3306 binden, da angeblich kein socket da ist, der lauschen kann, weil der port bereits benutzt wird.

Ein telnet connect zu localhost:3306 gibt folgendes ergebnis:

Can't start server: Bind on TCP/IP port: Address already in use.
Do you already have anoter mysqld server running on port: 3306 =
Aborting
mysqld: Shutdown Complete

Irgendwo muss jeweils eine weitere instanz von den zweid aemons laufen. Ich weiß nicht wo bzw. wie ich das problem fixen kann.

Any hints?

--bin4ry
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 14. Apr 2004 8:23   Titel:

Wenn ein Dienst durch den inetd/xinetd gestartet werden soll, darf er sich nicht selbst an die Ports binden! Statt dessen liest ein so gestarteter Daemon den Client-Request von stdin und schreibt das Ergebnis nach stdout, was der xinetd ihm vorher netterweise auf die Netzverbindung umgebogen hat.

Den Apache sollte man sicherlich auf xinetd-Betrieb konfigurieren können (wenn ich jetzt auch selbst nicht genau weiss, wie). Beim mysqld bin ich mir da nicht so sicher, ob der diese Methode beherrscht. Ausserdem würde er ja pro Request eine Instanz des DBMS starten wollen... Hm, das wirst Du ausprobieren müssen.

Jochen
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

bin4ry



Anmeldungsdatum: 13.04.2004
Beiträge: 2

BeitragVerfasst am: 14. Apr 2004 21:31   Titel:

Hey jochen,

yep, also ich weiß, dass sich der serviće nicht selbst an den port binden darf. Sondern dass xinetd das übernimmt.

Das ganze mache ich eigentlich nur aus sicherheitszwecken (und damit ich etwas über xinetd lerne). Will halt, dass apache und mysqld nur auf localhost:port erreichbar sind. Ich will nicht, dass sie an jeder ip lauschen, sondern nur auf localhost.

Hab das problem mit apache bordmitteln gelöst: Hab halt in der /etc/apache2/listen.conf den apache an localhost interface gebunden.

Wollte das halt auch mal mit xinetd ausprobieren, um zu verstehen, wie xinetd funktioniert. Muss jetzt nur nocheine lösung für mysql finden.

--bin4ry
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Software Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy