ottima velocità di boot: background dei processi in rc.M

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
pepe.carvalho
Linux 0.x
Linux 0.x
Messaggi: 85
Iscritto il: sab 5 nov 2005, 9:46

ottima velocità di boot: background dei processi in rc.M

Messaggio da pepe.carvalho »

il mio pc faceva il boot del kernel 2.4 (slack 10.2) in poco più di un 1 minuto.
un tempo accettabile, ma in gran parte dedicato ad aspettare che hotplug venga eseguito.

Leggendo un po' su slacky.it e un po' su alt.os.linux.slackware ho provato a mettere in background l'esecuzione di questo processo.
A beneficio dei più inesperti, per fare questo, è necessario mettere mano al file rc.M, racchiudere tra parentesi il comando che fa partire il processo di hotplug, e farlo seguire da &.

Da quello che so, questo trucco si può applicare in pratica a tutti gli script lanciati da rc.M ma *non* a rc.inet1, altrimenti rischiate di avviare rc.inet2 senza che tutte le inizializzazioni necessarie siano state fatte.


Ad es. io ho messo in background crond, pcmcia, cups, ecc ecc.

Risultato: il tempo di boot è di 30 sec, esattamente la metà ;=)
in pratica, accedo alla shell che alcuni processi stanno ancora lavorando in bg, ma questo non pregiudica secondo me in nessun modo la funzionalità del sistema.


***//frammento preso da rc.M


-->inet1 non è mandato in background
# Initialize the networking hardware. If your network driver is a module
# and you haven't loaded it manually, this will be deferred until after
# the hotplug system loads the module below.
if [ -x /etc/rc.d/rc.inet1 ]; then
. /etc/rc.d/rc.inet1
fi

pcmcia è invece avviato in background, così come il successivo inet2
# Initialize the hotplugging subsystem for Cardbus, IEEE1394, PCI, and USB devices:
if [ -x /etc/rc.d/rc.hotplug -a -r /proc/modules ]; then
# Don't run hotplug if 'nohotplug' was given at boot.
if ! grep nohotplug /proc/cmdline 1> /dev/null 2> /dev/null ; then
echo "Activating hardware detection: /etc/rc.d/rc.hotplug start"
#giorgio - backgrounding
(. /etc/rc.d/rc.hotplug start) &
fi
fi

# Start networking daemons:
if [ -x /etc/rc.d/rc.inet2 ]; then
(. /etc/rc.d/rc.inet2)&
fi

EMIX
Linux 0.x
Linux 0.x
Messaggi: 75
Iscritto il: mer 1 dic 2004, 0:00

Messaggio da EMIX »

Molto interessante..sicuramente da provare!

Ps: non penso che sia necessario racchiudere tra parentesi il comando che fa partire il processo di hotplug...io senza parentesi ho messo la & a fine riga e mi parte in background.

Avatar utente
krisis
Linux 4.x
Linux 4.x
Messaggi: 1120
Iscritto il: mar 25 gen 2005, 0:00
Distribuzione: debian
Località: Roma

Messaggio da krisis »

Infatti non è necessario mettere le parentesi.

ChriD
Linux 2.x
Linux 2.x
Messaggi: 362
Iscritto il: dom 30 ott 2005, 16:43

Messaggio da ChriD »

Cosa comporta far partire un processo in background????

perchè è possibile farlo con l'hotplug???? :?:

Avatar utente
krisis
Linux 4.x
Linux 4.x
Messaggi: 1120
Iscritto il: mar 25 gen 2005, 0:00
Distribuzione: debian
Località: Roma

Messaggio da krisis »

Fare partire un processo in bg libera il terminale e permette di iniziare nuovi task.
per esemio

Codice: Seleziona tutto

bash-3.00$ amsn &
[1] 3784
bash-3.00$
Come vedi amsn viene eseguito , viene riportato il pid ed il terminale è d inuovo disponibile , se non lo avessi mandato in bg quel terminale sarebbe rimasto occupato fino alla fine dell'esecuzione del programma.
Mandare in bg processi all'avvio fa risparimare tempo.

ChriD
Linux 2.x
Linux 2.x
Messaggi: 362
Iscritto il: dom 30 ott 2005, 16:43

Messaggio da ChriD »

krisis ha scritto:Fare partire un processo in bg libera il terminale e permette di iniziare nuovi task.
per esemio

Codice: Seleziona tutto

bash-3.00$ amsn &
[1] 3784
bash-3.00$
Come vedi amsn viene eseguito , viene riportato il pid ed il terminale è d inuovo disponibile , se non lo avessi mandato in bg quel terminale sarebbe rimasto occupato fino alla fine dell'esecuzione del programma.
Mandare in bg processi all'avvio fa risparimare tempo.
fico.....

adesso si che tutto inizia a gustarmi.....!!! :wink: :D

Avatar utente
elettronicha
Master
Master
Messaggi: 1712
Iscritto il: mer 13 apr 2005, 0:00
Località: Torino
Contatta:

Messaggio da elettronicha »

Nulla di nuovo sotto il sole, lo si consiglia da tempo immemore anche qui su questo forum. :)

Avatar utente
krisis
Linux 4.x
Linux 4.x
Messaggi: 1120
Iscritto il: mar 25 gen 2005, 0:00
Distribuzione: debian
Località: Roma

Messaggio da krisis »

eh già

Avatar utente
darkside04
Linux 2.x
Linux 2.x
Messaggi: 432
Iscritto il: mar 23 nov 2004, 0:00
Località: roma

Messaggio da darkside04 »

ho mandato in bkg i processi però il tempo in accesso è uguale 40 sec. senza bkg 40 sec. con i processi in bkg (tempi cronometrati), è necessario mettere & alla fine dello script vero??

Avatar utente
pepe.carvalho
Linux 0.x
Linux 0.x
Messaggi: 85
Iscritto il: sab 5 nov 2005, 9:46

Messaggio da pepe.carvalho »

ho scritto chiaramente nel post che mi sono ispirato a quanto letto qui e sul Ng inglese, quindi i commenti con sufficienza del tipo "nulla di nuovo" non mi sembrano molto azzeccati.
mica ho spacciato nulla per un mio personale hack.

comunque x rispondere a darkside, sì la & è proprio quello che ti serve per mettere in bg i processi. la parentesi invece è facoltativa.
La & non la metti alla fine dello script, ma alla fine delle righe in cui ci vengono chiamati gli script che vuoi backgroundare.

comunque nel mio post iniziale ci sono dei frammenti di esempio

Avatar utente
absinthe
Iper Master
Iper Master
Messaggi: 2354
Iscritto il: dom 15 mag 2005, 0:00
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze
Località: Prato
Contatta:

Messaggio da absinthe »

darkside_04 ha scritto:ho mandato in bkg i processi però il tempo in accesso è uguale 40 sec. senza bkg 40 sec. con i processi in bkg (tempi cronometrati), è necessario mettere & alla fine dello script vero??
dipende da quanto ci mettono i processi a chiudere le operazioni sul pc... ad esempio io ho un script che carica il governor dell'acpi all'avvio: ci mette una frazione di secondo: se lo butto in bg non ci guadagno niente.

in pratica mettere in bg significa parallelizzare i processi: quello che guadagni in velocità di passaggio da un processo ad un altro lo perdi in tempo di esecuzione del processo stesso (la potenza ella cpu è "partizionata" su più operazioni).

detto in poche parole (visto che poi non me ne intendo) a te il bg magari ti fa una pippa... visto che il bootstrap fino all'accesso è ridotto a 40 secondi il margine di guadagno probabilmente è minimo

M.

sunreal
Master
Master
Messaggi: 1599
Iscritto il: dom 10 apr 2005, 0:00
Slackware: 14.1
Desktop: kde
Località: P.P.P.

Messaggio da sunreal »

Io ho messo la & dopo . /etc/rc.d/rc.inet1 , ed effettivamente all'avvio il caricamento del sistema continua senza fermarsi a "pensare", visto che c' ero ho fatto anche un modifica suggerita in un vecchio how-to da un certo Bl4ck0ut, dio lo possa avere i gloria, è grazia a lui che alla prima installazione di slack non ho mandato tutti a cag....., comunque nel suo how-to diceva di commentare, nello stesso file, le righe di
Update the all shared library links
e anche questo funziona, prima ci volevano 15/20 secondi per passare questo scoglio, cosa dite è ancora valido, l'how-to è un po datato, oppure ci sono delle controindicazioni?
ciao.

Avatar utente
pepe.carvalho
Linux 0.x
Linux 0.x
Messaggi: 85
Iscritto il: sab 5 nov 2005, 9:46

Messaggio da pepe.carvalho »

sunreal ha scritto: di commentare, nello stesso file, le righe di
Update the all shared library links
e anche questo funziona, prima ci volevano 15/20 secondi per passare questo scoglio, cosa dite è ancora valido, l'how-to è un po datato, oppure ci sono delle controindicazioni?
ciao.
questa e' una cosa un po' diversa: in pratica quando slack fa il boot, aggiorna tutti i link delle librerie (/sbin/ldconfig) e questo prende tempo.

Siccome nel 95% delle volte non ci sono modifiche nella configurazione delle librerie, e' anche inutile la maggior parte delle volte.
Anch'io ho commentato questa istruzione.
Ricordati che in rari casi (se ad. es. tenti di fare partire un'applicazione, e questa ti da' un errore di missing libraries per delle librerie che invece sono installaate) potresti avere bisogno comunque di dare il comando a mano.

Avatar utente
sid77
Linux 3.x
Linux 3.x
Messaggi: 568
Iscritto il: mer 1 giu 2005, 0:00
Slackware: 12.0/12.1/curr (ppc)
Località: PowerPC
Contatta:

Messaggio da sid77 »

krisis ha scritto:Infatti non è necessario mettere le parentesi.
è una sicurezza in più, è probabilissimo che non serva ma se c'è di sicuro non fa male

ciao

Avatar utente
legionario
Linux 3.x
Linux 3.x
Messaggi: 603
Iscritto il: mer 8 dic 2004, 0:00
Località: Bergamo - Roma

Messaggio da legionario »

Secondo voi per quale motivo l'aggiunta di "&" dopo "startx -- :2" non mi libera il terminale da cui ho fatto partire il secondo xserver neanche dopo il completo caricamento di quest'ultimo?

Rispondi