Eseguo molti programmi in Ubuntu dal terminale, ma vorrei poter continuare a utilizzare il terminale dopo aver aperto un programma. Come posso mettere i programmi in background in modo da non dover aprire un'altra finestra?
Eseguo molti programmi in Ubuntu dal terminale, ma vorrei poter continuare a utilizzare il terminale dopo aver aperto un programma. Come posso mettere i programmi in background in modo da non dover aprire un'altra finestra?
Risposte:
Esistono diversi modi per eseguire un programma terminale e continuare a utilizzare il terminale:
&al comando eseguito. Tenere presente che non verrà visualizzato l'output di testo sul terminale, ad esempio i messaggi di errore.bg. Questo ha lo stesso effetto della corsacommand &nohup command &quindi premere Invio. (Grazie a ccpizza , vedi i commenti qui sotto.)Tuttavia, premendo Alt- F2e quindi eseguendo il comando dalla GUI di solito è considerata la migliore pratica - non esiste alcun terminale!
Si noti che quando si utilizza &(non nohup), la chiusura del terminale terminerà comunque l'applicazione a meno che non si esegua disownsuccessivamente .
EDIT: sembra come usarenohup a volte lascerà piccoli escrementi nella tua cartella home. Ciò che normalmente verrebbe registrato sul terminale apparentemente viene salvato in un file in ~ /.
~~
Un modo semplice per eseguire un programma in background è program-name & disown, che ti porterà su un terminale che può essere chiuso senza uccidere il processo.
program-name & disownè una bella soluzione
È possibile utilizzare setsidper eseguire il programma in una nuova sessione in aggiunta a &>/dev/nullcosì non riceverai alcun messaggio di registro.
Quindi sarebbe come
setsid program-name &>/dev/null
Utilizzando il screencomando, è possibile aprire più sessioni del terminale utilizzando un'unica finestra e toccare
apt-get install screen (On Debian based Systems)
yum install screen (On RedHat based Systems)
screen (avvia una nuova schermata)
[Your command]
Ctrl+A d per lasciare lo schermo ... e così via
Puoi eseguirlo in un terminale virtuale come tmux(o screenma ho sentito che non è più mantenuto)
# This ataches your terminal to a virtual terminal
tmux
run_your_command
# This detaches your virtual terminal (previous command can be running)
CTRL-b d
run_other_commands # on your terminal
# re-attach the virtual terminal to see the status of run_your_command
tmux a
tmux puoi fare molto di più, come:
https://www.hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/
nohup firefox&.