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 disown
successivamente .
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 setsid
per eseguire il programma in una nuova sessione in aggiunta a &>/dev/null
così non riceverai alcun messaggio di registro.
Quindi sarebbe come
setsid program-name &>/dev/null
Utilizzando il screen
comando, è 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 screen
ma 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&
.