Progetto Kernelpkg Tool
Moderatore: Staff
Regole del forum
1) Citare in modo preciso il nome del pacchetto.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
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.
1) Citare in modo preciso il nome del pacchetto.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
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.
- submax82
- Staff
- Messaggi: 3202
- Iscritto il: mer 31 ago 2005, 0:00
- Desktop: xfce
- Distribuzione: SalixOS
- Contatta:
ci sono riuscito! però...submax82 ha scritto:qualcuno sà come fare il -/|\ di attesa... cioè la linea rotante in bash?
nella funzione che si occupa della barra, lancio un comando in background ... e fin qui tutto ok
se termino kernelpkg con un ctrl+c rimane in esecuzione il programma in background.... come faccio a fare in modo che termini anche il programma in background che è stato lanciato da kernelpkg ?
idee? è l'ultima cosa prima del rilascio della nuova versione...
- targzeta
- Iper Master
- Messaggi: 6629
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Ehehe, ho letto il tuo thread ed ho visto che anche tu hai un pò di problemi. Questo te lo posso risolvere io. Guarda cosa fa questo scriptsubmax82 ha scritto:qualcuno sà come fare il \i attesa... cioè la linea rotante in bash?
Codice: Seleziona tutto
for i in \- \/ \|; do echo -en "$i\b"; sleep 1; done
Spina
- submax82
- Staff
- Messaggi: 3202
- Iscritto il: mer 31 ago 2005, 0:00
- Desktop: xfce
- Distribuzione: SalixOS
- Contatta:
questo l'ho già fatto ... grazie mille comunquespina ha scritto:Ehehe, ho letto il tuo thread ed ho visto che anche tu hai un pò di problemi. Questo te lo posso risolvere io. Guarda cosa fa questo scriptsubmax82 ha scritto:qualcuno sà come fare il \i attesa... cioè la linea rotante in bash?ora devo cenare , il '\' sembra essere una cosa un pò ostile, ma dopo cena te la risolvo sicuro.Codice: Seleziona tutto
for i in \- \/ \|; do echo -en "$i\b"; sleep 1; done
Spina
il problema è questo http://www.univ.trieste.it/csia/doc/old ... .12.4.html
praticamente kernelpkg ora lancia make in background e attende che finisca stampando il messaggio di attesa "animato" il problema è che se termino kernelpkg con ctrl+c ... il processo che aveva lanciato in background continua a girare... proprio il contrario di come dovrebbe avvenire... dal documento sopra
forse la cosa nasce dal fatto che uso eval per lanciare il comando in background
- targzeta
- Iper Master
- Messaggi: 6629
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Ciao,
scusami ma ho avuto da fare con gli altri amici del forum. Quello che ti serve a te è semplicemente la gestione dei segnali e dei processi in background.
Questo script fa per te
copialo in un file e testalo.
Praticamente lancia in background uno sleep 60. Si prende il PID del processo appena lanciato in background grazie alla variabile di ambiente $!. Imposta un sigaction, ovvero il comando
dice alla shell di catturare il segnale SIGINT (ctrl-c per l'appunto) e, quando ciò avviene deve eseguire "kill $pid" che uccide il processo in backgound.
Ovviamente però il ctrl-c fa morire anche il processo stesso che nel frattempo è in attesa con uno sleep 40.
Spero di esserti stato di aiuto
Spina
scusami ma ho avuto da fare con gli altri amici del forum. Quello che ti serve a te è semplicemente la gestione dei segnali e dei processi in background.
Questo script fa per te
Codice: Seleziona tutto
sleep 60&
pid=$!;
trap "kill $pid" SIGINT
echo "Il processo sleep 60 ha PID $pid. Premere ctrl-c per terminare entrambi i
processi.";
sleep 40;
Praticamente lancia in background uno sleep 60. Si prende il PID del processo appena lanciato in background grazie alla variabile di ambiente $!. Imposta un sigaction, ovvero il comando
Codice: Seleziona tutto
trap "kill $pid" SIGINT
Ovviamente però il ctrl-c fa morire anche il processo stesso che nel frattempo è in attesa con uno sleep 40.
Spero di esserti stato di aiuto
Spina
- targzeta
- Iper Master
- Messaggi: 6629
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
A me sembra normale, ctrl-z viene catturato dalla bash e manda in sospensione quest'ultima. Per riavviarla basta premere crtl-q.submax82 ha scritto:semi-risolto con trap ma non riesco a trappare il signal di ctrl-z
EDIT: avevo appena fatto uno script simile !!! incredibile grazie
rimane il problema del ctrl-z se lo trappo si blocca la shell
Non vedo che problema ci sia per il tuo script?
Spina
- submax82
- Staff
- Messaggi: 3202
- Iscritto il: mer 31 ago 2005, 0:00
- Desktop: xfce
- Distribuzione: SalixOS
- Contatta:
però la shell si blocca se provo a trappare ctrl-z altrimenti se non uso trap e premo ctrl-z stoppa il processo anche se vedo che rimane in psspina ha scritto:A me sembra normale, ctrl-z viene catturato dalla bash e manda in sospensione quest'ultima. Per riavviarla basta premere crtl-q.submax82 ha scritto:semi-risolto con trap ma non riesco a trappare il signal di ctrl-z
EDIT: avevo appena fatto uno script simile !!! incredibile grazie
rimane il problema del ctrl-z se lo trappo si blocca la shell
Non vedo che problema ci sia per il tuo script?
Spina
- targzeta
- Iper Master
- Messaggi: 6629
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Si si, stoppa il processo, è proprio a quello che serve il ctrl-z, poi con ctrl-q lo fai ripartire.submax82 ha scritto:...però la shell si blocca se provo a trappare ctrl-z altrimenti se non uso trap e premo ctrl-z stoppa il processo anche se vedo che rimane in ps
Ma non credo che ai fini del tuo script ti interessi molto catturare il ctrl-z.
Spina
- submax82
- Staff
- Messaggi: 3202
- Iscritto il: mer 31 ago 2005, 0:00
- Desktop: xfce
- Distribuzione: SalixOS
- Contatta:
però non riparte con ctrl-q cioè senza trap torna il prompt come fà a farlo ripartire?spina ha scritto:Si si, stoppa il processo, è proprio a quello che serve il ctrl-z, poi con ctrl-q lo fai ripartire.submax82 ha scritto:...però la shell si blocca se provo a trappare ctrl-z altrimenti se non uso trap e premo ctrl-z stoppa il processo anche se vedo che rimane in ps
Ma non credo che ai fini del tuo script ti interessi molto catturare il ctrl-z.
Spina
potrebbe essere utile mandare lo stesso segnale al comando lanciato in background.... altrimenti mentre kernelpkg si ferma ....il processo và avanti