Supponiamo che gedit
sia il programma che si desidera eseguire distaccato (alias "disnown", "disentangled", "disaccoppiato"). Esistono diversi modi a seconda di cosa si desidera fare esattamente:
Programma già in esecuzione
rinnegare:
disown -h
è la strada da percorrere se vuoi farlo con un programma già in esecuzione (cioè se ti sei dimenticato di nohup
farlo). Devi prima interromperlo usando Ctrl+ Z. Quindi è possibile inserire in background utilizzando bg [jobId]
(ad esempio bg 1
). Si ottiene un elenco di lavori in esecuzione con il loro jobId utilizzando jobs
. Dopodiché puoi separarlo dal terminale usando disown -h %[jobId]
. Esempio di sessione terminale:
$ gedit
^Z
[1]+ Stopped gedit
$ jobs
[1]+ Stopped gedit
$ bg 1
[1]+ gedit &
$ disown -h %1
$ exit
Il programma non è ancora iniziato
nohup
nohup
non è sempre presente su tutte le macchine. Se sai di voler disaccoppiare in anticipo, utilizzeresti:
nohup gedit &
Forse si vuole reindirizzare l'output della shell come bene e il programma di una sorgente di ingresso pseudo, così: nohup ./myprogram > foo.out 2> bar.err < /dev/null &
. Si desidera reindirizzare l'output per non essere infastidito da esso o utilizzarlo in un secondo momento. L'input null può aiutare a prevenire i rallentamenti in ssh e tali.
subshell:
Puoi ottenere un effetto simile con
$ (geany >/dev/null 2>&1 &)
Le parentesi aprono una nuova subshell per eseguire gedit. >/dev/null 2>&1
Reindirizza l'output della shell verso il nulla (sopprimendo l'output). E &
alla fine mette il processo in background.
Multiplazione terminale
Anche il multiplexing terminale tramite schermo o byobu . Fondamentalmente si esegue il programma in un terminale a sé stante. Posso davvero consigliare Byobu anche per altri motivi. Di seguito è riportato un elenco di scorciatoie boybu che potrebbero tornare utili per i tuoi primi passi:
Utile:
- F2 Crea una nuova finestra
- F3 Passa alla finestra successiva
- F4 Passa alla finestra precedente
- F6 Staccare dalla sessione e disconnettersi
- Shift-F6 Staccare dalla sessione, ma non disconnettersi
- F7 Entra in modalità scorrimento / ricerca
- Ctrl-F5 Ricollegare eventuali socket o agenti SSH / GPG
Meno utile:
- Shift-F2 Dividi lo schermo in orizzontale
- Ctrl-F2 Dividi lo schermo in verticale
- Shift-F3 Sposta lo stato attivo sulla divisione successiva
- Shift-F4 Sposta lo stato attivo sulla divisione precedente
- Shift-F5 Comprimi tutte le divisioni
- F5 Aggiorna tutte le notifiche di stato
- F8 Rinomina la finestra corrente
- F9 Avvia il menu di configurazione di Byobu
- F12 Tasto Escape dello schermo GNU
- Alt-Pageup Scorri indietro nella cronologia di questa finestra
- Alt-Pagedown Scorri in avanti attraverso la cronologia di questa finestra
- Ctrl-a-! Attiva o disattiva tutte le combinazioni di tasti di Byobu
Il demone "at" e altri
at
è un piccolo strumento utile per eseguire un comando ad un orario programmato. Può essere 'usato in modo improprio' per staccare un comando dalla shell:
echo './myprogram myoption1 myoption2' | at now
Inoltre puoi esaminare setsid
e start-stop-daemon
, ma gli altri metodi dovrebbero essere sufficienti.