PDA

Visualizza la versione completa : [gentoo] Dove mettere i comandi del kernel all'avvio


Gionnico
19-02-2007, 15:34
Ciao!

Vengo dalla distro LFS, dove usavo uno script per caricare iptables, ed in testa avevo aggiunto alcune informazioni da impostare per /proc ...

Per intenderci cose tipo


echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/tcp_syncookies


Solo che su gentoo uso iptables-save e iptables-restore , e quelle impostazioni non possono essere settate da questi comandi.

Se non sbaglio devono essere eseguite soltanto una volta ad ogni avvio giusto? Dove le posso mettere allora?

bereshit
19-02-2007, 15:48
se sei un utente LFS sicuramente leggere i manuali non ti spaventerà..leggiti come funzionano gli script di avvio in gentoo e come aggungerne

es:

rc-update add script default

GreyFox86
19-02-2007, 15:59
Sia iptables che le impostazioni di syncookies e l'altra non devono essere fatte a mano. gentoo usa un sistema di init assimilabile a quello di bsd (non so di preciso perchè non ho mai visto bsd :D ). Puoi gestire gli script di avvio con rc-update, inserendoli nei runlevel boot o default (puoi anche crearne inifiniti altri, come vuoi). E' davvero comodo.
(ad esempio)
# rc-update add iptables boot

Per quanto riguarda gli echo in /proc ti consiglio di inserirli in /etc/conf.d/local.start
Contiene tutti i comandi da dare all'avvio. Se controlli vedi che il servizio local è nel runlevel boot (rc-update -s | grep local). Esegue local.start quando si avvia, local.stop quando si ferma.

Il mio local.start ad esempio è (ho usato questa sintassi perchè non tutti i kernel che uso hanno queste feature abilitate, quindi prevengo dalla scrittura di errori in fase di avvio per file non trovato)


# Sets the default scaling governor to ondemand
curr_file="/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor";
[ -f $curr_file ] && echo ondemand > $curr_file || echo "Scaling governor NOT set"
# Turns on syncookies
curr_file="/proc/sys/net/ipv4/tcp_syncookies"
[ -f $curr_file ] && echo 1 > $curr_file || echo "Syncookies NOT set"

edit: non sono sicuro che iptables vada in runlevel boot, controlla in giro

Gionnico
19-02-2007, 20:07
Io local lo ho su default .. giustamente perché deve anche eseguire le operazioni di local.stop ... :zizi:

iptables è su default ... perché lo script all'avvio carica con iptables-restore ed allo spegnimento salva con iptables-save .. anche se non mi servirebbe salvare la configurazione cambiata ogni volta .. anche perché se faccio delle prove errate lo script mi salva le modifiche ... :oVVoVe:
Dici che basterebbe spostarlo su boot per eliminare la parte che salva ogni volta tutte le modifiche?


Ti ho copiato il local.start .. è comodo quel controllo sul file era un po' che pensavo di implementarlo. :D

GreyFox86
19-02-2007, 20:12
Originariamente inviato da Gionnico
Dici che basterebbe spostarlo su boot per eliminare la parte che salva ogni volta tutte le modifiche?

Fai una cosa migliore... vim /etc/conf.d/iptables
ed imposti SAVE_ON_STOP a "no" ;)
Per ogni initscript in gentoo esiste uno script con le variabili di configurazione (quasi sempre, non ho ancora incontrato eccezioni) quindi prima di ogni altra cosa controlla sempre lì :D


Originariamente inviato da Gionnico
Ti ho copiato il local.start .. è comodo quel controllo sul file era un po' che pensavo di implementarlo. :D

Eh eh, l'ho incollato apposta perchè qualcuno se ne servisse :D

Ah dimenticavo, benvenuto in gentoo ;)

Loading