Sposta il programma in esecuzione sullo sfondo in bash


10

Se sto eseguendo un programma in bash, posso sospenderlo premendo Ctrl+ Z. Se voglio lasciare il programma in esecuzione, posso quindi utilizzare il bgcomando. C'è un modo per mettere direttamente il programma in background, senza dover digitare bg?

Chiarimento : voglio mettere il programma in background quando è già in esecuzione, senza sospenderlo.


2
Questo non è un duplicato. Non voglio mantenere un programma in esecuzione quando la finestra del terminale è chiusa e non riesco a digitare un comando diverso. Voglio mettere un processo in background quando è già in esecuzione.
Kalle Elmér,

1
sì, questo non è un duplicato, per favore riaprilo.
saji89,

Grazie per tutti quei ragazzi che hanno aiutato a riaprire questo .. @Kalle, La domanda è ora riaperta.
saji89,

Molte grazie! Per quanto riguarda effettivamente la ricerca di una risposta alla domanda, immagino che l'unico modo sia di sospenderlo prima e poi di metterlo in background.
Kalle Elmér,

Risposte:


4

Non penso che sia possibile spostare un programma in esecuzione in background (mentre il processo è ancora in esecuzione).
Tuttavia, esiste un'applicazione denominata GNU-Screen , che consente di eseguire qualsiasi numero di applicazioni basate su console - shell di comandi interattivi, applicazioni basate su curses, editor di testo, ecc. - all'interno di un singolo terminale.
Ecco un bel tutorial su GNU-Screen.
Nota che non fa esattamente quello che hai chiesto, ma serve comunque allo scopo.
Esempio:
ecco l'implementazione di ciò che hai chiesto usando GNU-Screen.

  1. Esegui screen
    Otterrai i dettagli sul software. Premi Invio.
  2. Ora vedrai il tuo normale terminale, tuttavia è una finestra dello schermo. Digita qualsiasi comando vlc. Inizierà il processo all'interno di quella finestra.
  3. Ora per aprire una nuova finestra digitare Ctrl+ Ae quindi C. È possibile eseguire un nuovo comando qui. Notare che il processo avviato nella finestra 1 è ancora in esecuzione.
  4. Per staccare dallo schermo premi Ctrl+ Ae poi D. Ora torni al tuo vecchio termianl. Tuttavia, qualsiasi processo che hai iniziato dallo schermo sarebbe ancora in esecuzione.

4

Per quanto ne so, è possibile eseguirlo e quindi aggiungere un e dopo in questo modo:myprogram &

Potrei sbagliarmi qui, comunque.

[EDIT]: dando un'occhiata più da vicino a questo, se si esegue quanto sopra, l'applicazione si chiuderà quando si chiude il terminale. Se desideri che l'applicazione venga eseguita in background, allora, per quanto ne so, l'applicazione deve essere scritta in modo tale da supportare il comportamento dei demoni.

[EDIT 2]: nohup command & sembra essere più vicino a ciò che vuoi ottenere. Nohup consentirà l'esecuzione di un'applicazione ed entrambi ignorerà il suo input e reindirizzerà il suo output su un file chiamato nohup.outnella directory corrente.


Non mi interessa davvero se è chiuso quando chiudo la finestra del terminale. Tutto quello che sto cercando è una scorciatoia da tastiera in bash che funziona come Ctrl + Z ma manterrà il processo in esecuzione in background, invece di sospenderlo.
Kalle Elmér,

0

Questa potrebbe non essere una vera risposta. Mi chiedo quale sia la differenza tra Bash tra Ubuntu e MSYS.

Sto eseguendo MSYS e quando corro Application/Chrome &, passa immediatamente al processo in background. Posso usare MSYS bash come prossimo prompt iniziare a lampeggiare.

E queste domande portano il programma in esecuzione in background con intenti simili?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.