[Risolto] shutdown al termine di un comando
Moderatore: Staff
Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
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 linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
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.
-
robertobartola
- Linux 0.x

- Messaggi: 9
- Iscritto il: gio 15 gen 2009, 12:38
- Nome Cognome: Roberto Bartola
- Slackware: 12.1
- Kernel: 2.6.24.5
- Desktop: kde
[Risolto] shutdown al termine di un comando
Ciao a tutti.
Mi capita piuttosto spesso di impartire dei comandi che, forse a causa del mio hardware vecchiotto, necessita di tanto tempo per l'elaborazione.
Mi piacerebbe poter aggiungere informazioni al comando, dopo averlo mandato in esecuzione del tipo: " alla fine spegni tutto", oppure "alla fine fai quest'altra cosa".
E' possibile fare cio' ?
Al momento per poter automatizzare lo spegnimento faccio cosi':
1- :
1a - 'CTRL C'
1b - scrivo e mando in esecuzione uno script con shutdown alla fine
1c - esco a fare una passeggiata
2- su altra sessione, una volta stimato il tempo necessario, con sleep o at od altro impartisco il comando ad una certa ora.
Credo che le soluzioni da me trovate siano piuttosto 'barbare'.
La soluzione piu' interessante sarebbe qualcosa del tipo:
- impartire ad una combinazione di tasti (es. 'CTRL - ALT - H' ) l'esecuzione dello shutdown al termine del comando attuale
oppure
- impartire ad una combinazione di tasti (es. 'CTRL - ALT - P' ) la messa in background del comando, l'apertura della bash per l'imissione del comando che verra' impartito alla fine di quello principale, il foreground del comando primario.
Qualcuno sa se e' possibile fare niente del genere ?
Grazie Roberto
Mi capita piuttosto spesso di impartire dei comandi che, forse a causa del mio hardware vecchiotto, necessita di tanto tempo per l'elaborazione.
Mi piacerebbe poter aggiungere informazioni al comando, dopo averlo mandato in esecuzione del tipo: " alla fine spegni tutto", oppure "alla fine fai quest'altra cosa".
E' possibile fare cio' ?
Al momento per poter automatizzare lo spegnimento faccio cosi':
1- :
1a - 'CTRL C'
1b - scrivo e mando in esecuzione uno script con shutdown alla fine
1c - esco a fare una passeggiata
2- su altra sessione, una volta stimato il tempo necessario, con sleep o at od altro impartisco il comando ad una certa ora.
Credo che le soluzioni da me trovate siano piuttosto 'barbare'.
La soluzione piu' interessante sarebbe qualcosa del tipo:
- impartire ad una combinazione di tasti (es. 'CTRL - ALT - H' ) l'esecuzione dello shutdown al termine del comando attuale
oppure
- impartire ad una combinazione di tasti (es. 'CTRL - ALT - P' ) la messa in background del comando, l'apertura della bash per l'imissione del comando che verra' impartito alla fine di quello principale, il foreground del comando primario.
Qualcuno sa se e' possibile fare niente del genere ?
Grazie Roberto
Ultima modifica di robertobartola il mar 10 feb 2009, 15:14, modificato 2 volte in totale.
- JohnnyMnemonic
- Staff

- Messaggi: 2733
- Iscritto il: dom 5 set 2004, 0:00
- Nome Cognome: Giuseppe Palmiotto
- Slackware: 14.0
- Kernel: 3.5.5-thanatos
- Località: Bologna
- Contatta:
Re: shutdown al termine di un comando
Codice: Seleziona tutto
comando1 && comando2Questo ovviamente è un esempio molto basilare, ci sono tanti possibili metodi
- 414N
- Iper Master

- Messaggi: 2924
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: shutdown al termine di un comando
Una cosa del genere dovrebbe andare:
In questo modo, se comando termina correttamente, viene eseguito shutdown -h now. Ovviamente devi avere i permessi di esecuzione per poterlo lanciare (oppure anteponi sudo se l'hai configurato con esso).
Per terminare comunque dopo l'esecuzione di un comando (infischiandotene del valore dello stesso):
Codice: Seleziona tutto
comando && shutdown -h now
Per terminare comunque dopo l'esecuzione di un comando (infischiandotene del valore dello stesso):
Codice: Seleziona tutto
comando; shutdown -h now
-
robertobartola
- Linux 0.x

- Messaggi: 9
- Iscritto il: gio 15 gen 2009, 12:38
- Nome Cognome: Roberto Bartola
- Slackware: 12.1
- Kernel: 2.6.24.5
- Desktop: kde
Re: shutdown al termine di un comando
Vi ringrazio per le risposte
> comando && shutdown -h now
> comando; shutdown -h now
ma e' una soluzione paragonabile a quel che faccio quando faccio uno script.
Per essere piu' chiari intendevo sapere se e' possibile aggiungere in qualche modo il comando shutdown solo dopo aver gia' lanciato il comando (diciamo ricompilare il kernel) ed aver deciso a meta' che si vuole aggiungere la seconda parte (shutdown).
> comando && shutdown -h now
> comando; shutdown -h now
ma e' una soluzione paragonabile a quel che faccio quando faccio uno script.
Per essere piu' chiari intendevo sapere se e' possibile aggiungere in qualche modo il comando shutdown solo dopo aver gia' lanciato il comando (diciamo ricompilare il kernel) ed aver deciso a meta' che si vuole aggiungere la seconda parte (shutdown).
- 414N
- Iper Master

- Messaggi: 2924
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: shutdown al termine di un comando
Allora ti basta premere CTRL+Z per mettere in stop il processo attualmente in corso, impostare il timeout dello shutdown e far ripartire il processo stoppato con
dove N è il numero del job che ti compare quando "stoppi" il processo (se non ne hai stoppato nessun altro nella stessa shell probabilmente sarà 1). Con fg lo rimetti in foreground.
Codice: Seleziona tutto
fg %N
-
robertobartola
- Linux 0.x

- Messaggi: 9
- Iscritto il: gio 15 gen 2009, 12:38
- Nome Cognome: Roberto Bartola
- Slackware: 12.1
- Kernel: 2.6.24.5
- Desktop: kde
Re: shutdown al termine di un comando
Bene per Control-Z e fg, ma non e' possibile (almeno mi sembra) dare un comando del tipo fg %N && shutdown -h now , per cui devo per forza impostare un tempo che non sono sicuro sia sufficiente, per cui cio' equivale a passare su un'altra tty e da li' digitare shtdowna -h -t ....
-
Mario Vanoni
- Iper Master

- Messaggi: 3174
- Iscritto il: lun 3 set 2007, 21:20
- Nome Cognome: Mario Vanoni
- Slackware: 12.2
- Kernel: 3.0.4 statico
- Desktop: fluxbox/seamonkey
- Località: Cuasso al Monte (VA)
Re: shutdown al termine di un comando
compilare && shutdownrobertobartola ha scritto:Bene per Control-Z e fg, ma non e' possibile (almeno mi sembra) dare un comando del tipo fg %N && shutdown -h now , per cui devo per forza impostare un tempo che non sono sicuro sia sufficiente, per cui cio' equivale a passare su un'altra tty e da li' digitare shtdowna -h -t ....
vai in passeggiata
quando torni e` spento o lavora ancora
se sei in casa sai quanto tempo necessita una compilazione,
usa una volta time make ... (sono sui 6 minuti da me)
Ctrl-C la puoi interrompere
shutdowm (io uso halt)
sinceramente non capisco la tua perplessita`
-
robertobartola
- Linux 0.x

- Messaggi: 9
- Iscritto il: gio 15 gen 2009, 12:38
- Nome Cognome: Roberto Bartola
- Slackware: 12.1
- Kernel: 2.6.24.5
- Desktop: kde
Re: shutdown al termine di un comando
Probabilmente non mi sono spiegato bene.
La mia domanda era volta a sapere se e' possibile in qualche maniera "appendere" un comando come (ad esempio) lo "shutdown" ad un comando gia' immesso ed in esecuzione, magari perche' e' passato gia' del tempo e ci si accorge solo ora che era meglio digitare un comando tipo "comando1 && comando2" oppure "comando1 && halt " e quindi le possibilita' sono quelle di brekkare e ricominciare (digitando "comando1 && halt" , etc. ) oppure far spegnere il computer ad un'ora in cui si presume che il lavoro sia spento ("sleep 3600 ; comando2" oppure " shtdown -h -t ..." oppure "at .... " etc.)
L'applicazione di compilazione del kenel e' solo un esempio.
Nel mio laptop (del 1999 con 177 Mb RAM, su cui gira benone slackware 12.1 con KDE 3.5 ed addirittura openoffice 3.0) quando lancio operazioni del genere si prendono un sacco di tempo che e a priori non e' noto, per cui la stima non e' sempre banale...
Roberto
La mia domanda era volta a sapere se e' possibile in qualche maniera "appendere" un comando come (ad esempio) lo "shutdown" ad un comando gia' immesso ed in esecuzione, magari perche' e' passato gia' del tempo e ci si accorge solo ora che era meglio digitare un comando tipo "comando1 && comando2" oppure "comando1 && halt " e quindi le possibilita' sono quelle di brekkare e ricominciare (digitando "comando1 && halt" , etc. ) oppure far spegnere il computer ad un'ora in cui si presume che il lavoro sia spento ("sleep 3600 ; comando2" oppure " shtdown -h -t ..." oppure "at .... " etc.)
L'applicazione di compilazione del kenel e' solo un esempio.
Nel mio laptop (del 1999 con 177 Mb RAM, su cui gira benone slackware 12.1 con KDE 3.5 ed addirittura openoffice 3.0) quando lancio operazioni del genere si prendono un sacco di tempo che e a priori non e' noto, per cui la stima non e' sempre banale...
Roberto
- targzeta
- Iper Master

- Messaggi: 6643
- 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
Re: shutdown al termine di un comando
Una soluzione potrebbe essere quella di controllare il pid del processo (ad esempio tramite ps)ogni tot secondi, se il pid non c'è più allora puoi eseguire un altro comando.
Ora non sono su linux, se non ci riesci, ti posto (forse stasera) una soluzione di questo tipo. Controlla anche il comando interno wait della bash(1), forse ti può aiutare, solo che in quest'ultimo caso, se non ricordo male, puoi aspettare solo la terminazione di un comando figlio della stessa shella su cui invochi wait....
Fammi sapere,
Spina
Ora non sono su linux, se non ci riesci, ti posto (forse stasera) una soluzione di questo tipo. Controlla anche il comando interno wait della bash(1), forse ti può aiutare, solo che in quest'ultimo caso, se non ricordo male, puoi aspettare solo la terminazione di un comando figlio della stessa shella su cui invochi wait....
Fammi sapere,
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
-
Mario Vanoni
- Iper Master

- Messaggi: 3174
- Iscritto il: lun 3 set 2007, 21:20
- Nome Cognome: Mario Vanoni
- Slackware: 12.2
- Kernel: 3.0.4 statico
- Desktop: fluxbox/seamonkey
- Località: Cuasso al Monte (VA)
Re: shutdown al termine di un comando
con cmd && haltrobertobartola ha scritto:Probabilmente non mi sono spiegato bene.
La mia domanda era volta a sapere se e' possibile in qualche maniera "appendere" un comando come (ad esempio) lo "shutdown" ad un comando gia' immesso ed in esecuzione, magari perche' e' passato gia' del tempo e ci si accorge solo ora che era meglio digitare un comando tipo "comando1 && comando2" oppure "comando1 && halt " e quindi le possibilita' sono quelle di brekkare e ricominciare (digitando "comando1 && halt" , etc. ) oppure far spegnere il computer ad un'ora in cui si presume che il lavoro sia spento ("sleep 3600 ; comando2" oppure " shtdown -h -t ..." oppure "at .... " etc.)
L'applicazione di compilazione del kenel e' solo un esempio.
Nel mio laptop (del 1999 con 177 Mb RAM, su cui gira benone slackware 12.1 con KDE 3.5 ed addirittura openoffice 3.0) quando lancio operazioni del genere si prendono un sacco di tempo che e a priori non e' noto, per cui la stima non e' sempre banale...
ti spegne la macchina solo se cmd ritorna 0 (successo)
con cmd ; halt
ti spegne la macchina con qualunque esito di cmd
userei una delle due soluzioni, KISS rule,
intromettere un halt tra 3600 minuti,
mi sembra controproducente,
non sai il risultato
e se impiega 3605 minuti?
personalmente voglio sapere il risultato, quindi
cmd ; echo $? > /path/file ; halt
quando riaccendo la macchina
so con quale esito cmd ha terminato
- targzeta
- Iper Master

- Messaggi: 6643
- 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
Re: shutdown al termine di un comando
Questo è già stato detto in precedenza da 414NMario Vanoni ha scritto: con cmd && halt
ti spegne la macchina solo se cmd ritorna 0 (successo)
con cmd ; halt
ti spegne la macchina con qualunque esito di cmd
userei una delle due soluzioni, KISS rule,
...
Questo invece è stato detto dallo stesso robertobartolaMario Vanoni ha scritto:...
intromettere un halt tra 3600 minuti,
mi sembra controproducente,
non sai il risultato
e se impiega 3605 minuti?
...
Mario, scusa se mi intrometto, ma forse non hai ben chiaro quello che chiede il nostro amico.
Il suo problema, con un esempio è questo: lancio in esecuzione make sui sorgenti del kernel (quindi un comando che impiega un bel pò per finire). ORA E SOLO ORA, quindi solo dopo aver dato il comando, mi accorgo che mi annoia troppo stare li ad aspettare che il make finisca per spegnere il PC. Come faccio allora a dire al PC di spegnersi dopo che il make è finito?
Le tue soluzioni prevedono che io sappia già di voler spegnere il PC alla fine del make.
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
Re: shutdown al termine di un comando
potresti fare un controllo con pidof
in pratica controlli ogni 5 (ovviamente l'intervallo è configurabile) secondi se il programma è ancora vivo e appena s'accorge che è finito, spengi il pc
magari esistono metodi migliori, ma questo è il primo che m'è venuto in mente
Codice: Seleziona tutto
$ programma_lungo
$ [CTRL-Z]
$ while pidof programma_lungo; do sleep 5; done ; shutdown -h now
$ fg
magari esistono metodi migliori, ma questo è il primo che m'è venuto in mente
-
Mario Vanoni
- Iper Master

- Messaggi: 3174
- Iscritto il: lun 3 set 2007, 21:20
- Nome Cognome: Mario Vanoni
- Slackware: 12.2
- Kernel: 3.0.4 statico
- Desktop: fluxbox/seamonkey
- Località: Cuasso al Monte (VA)
Re: shutdown al termine di un comando
Scusa Emanuele,spina ha scritto: Mario, scusa se mi intrometto, ma forse non hai ben chiaro quello che chiede il nostro amico.
Il suo problema, con un esempio è questo: lancio in esecuzione make sui sorgenti del kernel (quindi un comando che impiega un bel pò per finire). ORA E SOLO ORA, quindi solo dopo aver dato il comando, mi accorgo che mi annoia troppo stare li ad aspettare che il make finisca per spegnere il PC. Come faccio allora a dire al PC di spegnersi dopo che il make è finito?
ma non e` controproducente non sapere l'esito di un programma,
e programmare di spegnere la macchina quando ha finito?
Anche un make bzImage puo` finire in errore.
Che senso ha il giorno dopo?
Se non controlli la data di creazione,
magari il kernel e` vecchio di # giorni.
- targzeta
- Iper Master

- Messaggi: 6643
- 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
Re: shutdown al termine di un comando
Può darsi di si, può darsi di no, dipende dai casi, a volte si può sapere anche il giorno dopo che il programma è uscito male. Facevo notare solo che le tue non erano soluzioni per il problema proposto e cercavo di spiegarlo con un esempio per renderlo più chiaro.Mario Vanoni ha scritto:...
Scusa Emanuele,
ma non e` controproducente non sapere l'esito di un programma,
e programmare di spegnere la macchina quando ha finito?
Anche un make bzImage puo` finire in errore.
Che senso ha il giorno dopo?
Se non controlli la data di creazione,
magari il kernel e` vecchio di # giorni.
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- targzeta
- Iper Master

- Messaggi: 6643
- 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
Re: shutdown al termine di un comando
Questa è l'implementazione di uno dei due algoritmi.ZeD ha scritto:......Codice: Seleziona tutto
$ programma_lungo [CTRL-Z] $ while pidof programma_lungo; do sleep 5; done ; shutdown -h now $ fg
L'altro è questo:
Codice: Seleziona tutto
$> comando_lungo
[CTRL-Z]
[1]+ Stopped
$> bg
[1]+ programma_lungo &
$> wait %1; shutdown -h now
I due comandi si differenziano perchè quello che ho appena postato funziona solo con job o PID figli della shell su cui mandi in esecuzione wait.
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
