Newsgroup: it.comp.os.linux.software
Titolo: ircd chiamato da inetd. Non va!

Brevemente:
* creo un utente 'irc'
* installo l'rpm di ircd (tutto va bene)
* leggo il man di ircd.
Qui mi dice che irc lo devo avviare a mano di volta in volta, oppure
lo posso avviare con il flag '-c' in rc.local, oppure inserire la riga
ircd stream tcp wait irc /etc/ircd ircd -i
in inetd.conf
A parte che quel /etc/ircd mi suona veramente male (forse era
/usr/sbin/ircd ?) resta il fatto che cosě non c'č verso di farlo
andare.
Ho tentato tutte le combinazioni possibili, cioč:
ircd stream tcp wait irc /usr/sbin/ircd ircd -i
(idem)			/usr/sbin/ircd /usr/sbin/ircd -i
(idem)			/usr/lib/ircd /usr/sbin/ircd -i
(idem)			/usr/lib/ircd ircd -i
(idem)			/usr/sbin/tcpd /usr/sbin/ircd -i
[non si sa mai che volesse il trasporto tcp... boh!!! Ho provato anche
quella!!!]
(idem)			/etc/ircd /usr/sbin/ircd -i
[dopo aver copiato /usr/lib/ircd in /etc/ircd]...
E poi la stessa cosa con le opzioni -o, poi -c e -e...
Non solo. Ho provato a disinstallare il pacchetto rpm, cancellare
l'utente irc, e installare il server da root. Identica cosa.
Naturalmente dopo ogni tentativo era d'obbligo un sano:
# killall -HUP inetd
(fino a lě ci arrivo!) :-)
Ma niente, non ne vuole sapere di farsi avviare da inetd.
Ho ovviamente provato con ircd.conf in /usr/lib/ircd di default, e
pure con uno modificato da me. Nessuna differenza :-(
Il server perň funziona, perché avviato "a mano" con:
[ro...@vraptor.tato]# su irc
[i...@vraptor.tato]$ /usr/sbin/ircd
(senza -c o -o!!!!) funziona perfettamente!!!!
Alla fine, per farlo andare, mi basta avere la riga:
su - irc -c "/usr/sbin/ircd"
in /etc/rc.d/rc.local
cosě viene avviato coi permessi di irc e non di root (ho l'allergia
per tutto ciň che gira con privilegi di root, datemi del paranoico
ma...)
Funziona anche con /usr/sbin/ircd -c
perň le due domande sono:
1) se basta chiamarlo con /usr/sbin/ircd per farlo avviare, a che
serve tutta quella menata dei flag?
2) perché dicono che si puň far avviare "on demand" da inetd, con -i,
se poi non č vero??
Dove sbaglio?
Ps: non ditemi "e che cavolo te ne fai di un server irc, se vai in
rete con un modem 28.8 e hai l'ip dinamico??", la mia megalomania mi
impone di averlo :-)
-- 
Crononauta               | togli 'sse' dall'indirizzo  | 
==========               | per rispondermi in e-mail   | 
ICQ UIN: 4005815
IDAnet: 
http://adcserver1.biodip.unimi.it/ida/index.html
GP Legends: 
http://www.multiplayer.it/driving/index.html

se poi non è vero??
Non vorrei dire una cavolata, ma l'entry in /etc/inetd.conf serve
solamente per abilitare quella porta in ascolto... se poi il demone non
lo avvii appunto con /usr/sbin/ircd non ci sara` niente a ricevere i
pacchetti che arrivano...
Ergo, tutto normale.
Ciao,
-- 
Franco Sarcina - fraVI...@tinQUI.it
Libero pensatore e, per contrappasso nella vita terrena, giornalista
Utente Linux perche'... non c'e' paragone.

Ergo, tutto normale.
Normale no... i servizi avviati da inetd sono avviati "on demand".
Mi spiego (se è corretto quello che ho capito): p.e. sendmail è un
servizio di sistema, o anche apache lo avvio in rc.local: questi
caricano il loro bravo  demone, e le porte 25 e 80 restano disponibili
per le connessioni sul sistema, *sempre e comunque*.
Inetd non c'entra niente, puoi anche killarlo ma tu la porta 25 e 80 è
comunque disponibile.
E in ogni caso, tu vedi una porta 25 e una porta 80 aperta *sempre* in
qualunque momento tu faccia netstat.
pop3d, invece è richiamato da inetd... tu fatti un netstat e vedi che
normalmente *non* c'è la minima traccia di una porta 110 aperta sul
sistema. Stesso discorso per nntp, tu non hai nessuna porta 119
aperta.
Prova però a collegarti al tuo sistema sulla porta 110 o sulla 119, e
vedi che ti rispondono due servizi. Questi servizi sono avviati "on
demand" da inetd, che riconosce la richiesta di un certo servizio, e
lo avvia all'uopo, senza che tu debba avere un richiamo a pop3d da
altre parti.
Altrimenti, scusa, di inetd cosa me ne faccio, se comunque il servizio
lo devo avviare per altre vie???
Qui dovrebbe stare la differenza fra avviare un servizio in rc.local
oppure in inetd: nel primo caso, se metto ircd in rc.local, mi trovo
la porta 6667 aperta sempre e comunque, a disposizione di chi vuole
joinare sul mio server.
Nel secondo caso, la porta 6667 resta chiusa, ma viene aperta (con
conseguente avvio di ircd) *solo* nel momento in cui si ha una
richiesta di accesso sulla porta 6667.
Avviare i servizi in inetd, potendo, è preferibile, poiché vengono
avviati solo se necessari e richiesti, senza caricare il kernel quando
non è necessario.
Almeno, questo è quello che ho capito.
E i miei dubbi restano!



Accidenti hai ragione... (quarta riga della man page). A questo punto,
non so proprio che dirti...


non so proprio che dirti...
col mio culo, sta a vedere che ho beccato un rpm bacato di inetd...
Non sarebbe la prima volta che trovo un rpm stronzo... perfino il
KERNEL della RedHat 6.0 era stronzo!!!
Quando l'ho dovuto ricompilare per utilizzare il masterizzatore sono
diventato pazzo 2 settimane, ho rotto le balle a tutti, finché uno mi
ha detto: senti, scaricati il kernel nuovo, si sa mai...
E infatti quello (un tar.gz) si è ricompilato subito!!!!
=:-O
Però qui la cosa strana è che il servizio va... non so fino a che
punto possa essere bacato... mah. Eppure qualcosa che non funziona ci
deve pur essere...
