CTRL-ALT-CANC
Processi in bg linux
Messaggio del 08-09-2008 alle ore 15:29:17
Volevo creare un semplice processo in background che esegua un comando ogni tot tempo, come posso fare?Immagino ci voglia uno shell script, ma mi viene un dubbio:
lo script viene lanciato su un server dal mio utente, che succede se io mi disconnetto dal server?il processo muore o rimane?
grazie!
Volevo creare un semplice processo in background che esegua un comando ogni tot tempo, come posso fare?Immagino ci voglia uno shell script, ma mi viene un dubbio:
lo script viene lanciato su un server dal mio utente, che succede se io mi disconnetto dal server?il processo muore o rimane?
grazie!
Messaggio del 08-09-2008 alle ore 16:40:19
lo devi lanciare con nohup all'inizio e con & alla fine del comando. Così il processo continua a girare e scrive l'output nel nel file nohup.out, che si crea nella directory dove hai lanciato lo script.
Mi pare di ricordare che se lo lanci solo con nohup oppure solo con &, il processo si killa appena ti disconnetti
lo devi lanciare con nohup all'inizio e con & alla fine del comando. Così il processo continua a girare e scrive l'output nel nel file nohup.out, che si crea nella directory dove hai lanciato lo script.
Mi pare di ricordare che se lo lanci solo con nohup oppure solo con &, il processo si killa appena ti disconnetti
Messaggio del 08-09-2008 alle ore 19:44:00
grazie tom, il mio script è veramente una stronzata si traccia di lanciare il seguente comando: python nomescript.py
devo solo farlo in background, cioè che mi ritorna la console e fa quello che deve fare e che non muore se io faccio exit.
altri suggerimenti?
gipsy, tbr il re di mozilla?
grazie tom, il mio script è veramente una stronzata si traccia di lanciare il seguente comando: python nomescript.py
devo solo farlo in background, cioè che mi ritorna la console e fa quello che deve fare e che non muore se io faccio exit.
altri suggerimenti?
gipsy, tbr il re di mozilla?
Messaggio del 08-09-2008 alle ore 21:12:55
risolto, ho lanciato il processo con & alla fine come mi ha suggerito gipsy via skype. la console mi ha restituito il pid e il processo è rimasto anche dopo he ho sloggato
mo mi devo ricordare di killarlo quando non mi serve più, ma per quello basta un foglio e una penna
risolto, ho lanciato il processo con & alla fine come mi ha suggerito gipsy via skype. la console mi ha restituito il pid e il processo è rimasto anche dopo he ho sloggato
mo mi devo ricordare di killarlo quando non mi serve più, ma per quello basta un foglio e una penna
Messaggio del 08-09-2008 alle ore 21:39:28
ma l'output non t'interessa?
ma l'output non t'interessa?
Messaggio del 08-09-2008 alle ore 21:45:54
Tom sono sicuro che un processo lanciato da bash con & non termina con l'uscita del processo genitore, mentre con nohup si (perchè nohup redirige l'output e setta la sigmask per intercettare i signal di HUP). Mentre il builtin operator & manda il processo in una subshell completamente indipendente.
Di solito, come hai specificato si usa pure nohup, per rendere il processo un po' più "resistente" e per vederne l'output (ma per quest'ultimo basta una redirection di stdout e stderr su file)
Tom sono sicuro che un processo lanciato da bash con & non termina con l'uscita del processo genitore, mentre con nohup si (perchè nohup redirige l'output e setta la sigmask per intercettare i signal di HUP). Mentre il builtin operator & manda il processo in una subshell completamente indipendente.
Di solito, come hai specificato si usa pure nohup, per rendere il processo un po' più "resistente" e per vederne l'output (ma per quest'ultimo basta una redirection di stdout e stderr su file)
Messaggio del 09-09-2008 alle ore 05:10:35
io mi sono intrippato un periodo con un programma che gira sotto mono e che non mi permetteva di tornare alla shell senza interromperlo, neanche con nohup, con la & finale, reindirizzarlo su /dev/null... niente da fare
Alla fine la soluzione top l'ho trovata con il comando "screen"!
In pratica è un emulatore di terminale che ti apre la sessione, fai quello che devi fare e poi fai il "detach". Quando ti serve tornare al programma in esecuzione, screen -r session_name
qui una lista delle opzioni
io mi sono intrippato un periodo con un programma che gira sotto mono e che non mi permetteva di tornare alla shell senza interromperlo, neanche con nohup, con la & finale, reindirizzarlo su /dev/null... niente da fare
Alla fine la soluzione top l'ho trovata con il comando "screen"!
In pratica è un emulatore di terminale che ti apre la sessione, fai quello che devi fare e poi fai il "detach". Quando ti serve tornare al programma in esecuzione, screen -r session_name
qui una lista delle opzioni
Messaggio del 09-09-2008 alle ore 08:01:16
vero sampe', screen e' utlissimo non ci avevo proprio pensato!
comunque per il mio script basta una semplice &. Praticamente e' uno script python che comunica con un server tramite socket, ma deve farlo in background senza rompere le balle e soprattutto deve "sopravvivere" se io sloggo
grazie a tutti, sapevo che avrei trovato la soluzione qui!
vero sampe', screen e' utlissimo non ci avevo proprio pensato!
comunque per il mio script basta una semplice &. Praticamente e' uno script python che comunica con un server tramite socket, ma deve farlo in background senza rompere le balle e soprattutto deve "sopravvivere" se io sloggo
grazie a tutti, sapevo che avrei trovato la soluzione qui!
Messaggio del 09-09-2008 alle ore 10:02:05
ah, ecco perchè stressavi il mio risponditore automatico ieri sera... ... io ti avrei suggerito una bella & a fine comando... ... ma cmq mi rimane un dubbio... scrivi ad inizio post che devi lanciare uno script che esegue un comando ogni tot tempo... non ti conviene utilizzare cron al posto di uno script che esegua il comando? o forse ho frainteso io...
ah, ecco perchè stressavi il mio risponditore automatico ieri sera... ... io ti avrei suggerito una bella & a fine comando... ... ma cmq mi rimane un dubbio... scrivi ad inizio post che devi lanciare uno script che esegue un comando ogni tot tempo... non ti conviene utilizzare cron al posto di uno script che esegua il comando? o forse ho frainteso io...
Messaggio del 09-09-2008 alle ore 10:31:47
tibbie' sei il peggiore
mi documento su cron, non lo conosco come comando ma il nome dice tutto
tibbie' sei il peggiore
mi documento su cron, non lo conosco come comando ma il nome dice tutto
Messaggio del 09-09-2008 alle ore 10:47:31
http://it.wikipedia.org/wiki/Crontab
http://it.wikipedia.org/wiki/Crontab
Messaggio del 09-09-2008 alle ore 11:01:46
ottimo!quello che cercavo, grazie mille!
ora metto lo script nel file crontab, ma devo includere & oppure lo esegue in background da solo?
ottimo!quello che cercavo, grazie mille!
ora metto lo script nel file crontab, ma devo includere & oppure lo esegue in background da solo?
Messaggio del 09-09-2008 alle ore 11:25:42
scusa, a te non serve eseguire un processo con la &... da quello che ho capito devi eseguire uno script... con crontab, che gira già in backgroud, lanci il processo che poi termina e buonanotte... verrà rieseguito dal cron alla prossima schedulazione... prima utilizzavi la & perchè nel tuo script era inclusa una schedulazione, quindi il processo doveva rimanere in bg.... giusto? quindi non ti serve mettere la &
scusa, a te non serve eseguire un processo con la &... da quello che ho capito devi eseguire uno script... con crontab, che gira già in backgroud, lanci il processo che poi termina e buonanotte... verrà rieseguito dal cron alla prossima schedulazione... prima utilizzavi la & perchè nel tuo script era inclusa una schedulazione, quindi il processo doveva rimanere in bg.... giusto? quindi non ti serve mettere la &
Messaggio del 09-09-2008 alle ore 11:44:33
ok grazie!
ho editato il file crontab sotto /etc/ e ci ho messo la riga di comando da eseguire con la dovuta sintassi per la schedulazione.
ora ho provato a cercare crontab facendo ps aux | grep crontab ma non trova nulla
ho lanciato crontab cosi' allora:
crontab file_di_crontab
parte, ma cercandolo fra i processi non c'e'
che bordello
ok grazie!
ho editato il file crontab sotto /etc/ e ci ho messo la riga di comando da eseguire con la dovuta sintassi per la schedulazione.
ora ho provato a cercare crontab facendo ps aux | grep crontab ma non trova nulla
ho lanciato crontab cosi' allora:
crontab file_di_crontab
parte, ma cercandolo fra i processi non c'e'
che bordello
Messaggio del 09-09-2008 alle ore 14:41:04
Come ti ho giá risposto su skype, il processo é cron, non crontab
Se inoltre devi lanciare uno script solo una volta, non hai bisogno di cron, ma di at, mentre se lo devi lanciare ogni tot (giorno, ora, minuto, settimana, mese anno ecc.) lo devi mettere in crontab.
Come ti ho giá risposto su skype, il processo é cron, non crontab
Se inoltre devi lanciare uno script solo una volta, non hai bisogno di cron, ma di at, mentre se lo devi lanciare ogni tot (giorno, ora, minuto, settimana, mese anno ecc.) lo devi mettere in crontab.
Messaggio del 09-09-2008 alle ore 15:39:40
ok finalmente funziona!
ecco come ho fatto se a qualcuno dovesse servire:
crontab -e (apre l'editor del file di riferimento di cron)
ho editato il file, le istruzioni le trovate nel link di tbr
ho salvato e sono uscito, lui installa automaticamente il nuovo file di cron
se volete avere conferma lanciate crontab -l e vi lista tutti comandi che gli sono stati richiesti di eseguire
grazie a tutti!
ok finalmente funziona!
ecco come ho fatto se a qualcuno dovesse servire:
crontab -e (apre l'editor del file di riferimento di cron)
ho editato il file, le istruzioni le trovate nel link di tbr
ho salvato e sono uscito, lui installa automaticamente il nuovo file di cron
se volete avere conferma lanciate crontab -l e vi lista tutti comandi che gli sono stati richiesti di eseguire
grazie a tutti!
Nuova reply all'argomento:
Processi in bg linux
Registrati
Mi so scurdate la password
Hai problemi ad effettuare il login?
segui le istruzioni qui