Supposons que gedit
le programme que vous souhaitez exécuter soit détaché (ou "désapprouvé", "démêlé", "découplé"). Il y a différentes manières selon ce que vous voulez faire exactement:
Programme déjà en cours
Renier:
disown -h
est la voie à suivre si vous voulez le faire avec un programme déjà en cours d’exécution (c’est-à-dire si vous avez oublié de le nohup
faire). Vous devez d'abord l'arrêter avec Ctrl+ Z. Ensuite, vous pouvez mettre en arrière-plan en utilisant bg [jobId]
(par exemple bg 1
). Vous obtenez une liste des travaux en cours avec leur jobId utilisant jobs
. Après cela, vous pouvez le découpler du terminal en utilisant disown -h %[jobId]
. Exemple de session de terminal:
$ gedit
^Z
[1]+ Stopped gedit
$ jobs
[1]+ Stopped gedit
$ bg 1
[1]+ gedit &
$ disown -h %1
$ exit
Programme pas encore commencé
nohup
nohup
n'est pas toujours présent sur toutes les machines. Si vous savez que vous souhaitez découpler au préalable, vous utiliserez:
nohup gedit &
Peut - être que vous voulez rediriger la sortie shell ainsi et votre programme une source d'entrée pseudo, donc: nohup ./myprogram > foo.out 2> bar.err < /dev/null &
. Vous voudriez rediriger la sortie pour ne pas être ennuyé par elle ou pour l'utiliser plus tard. L'entrée nulle peut aider à empêcher les hickups dans SSH, par exemple.
Sous-coquille:
Vous pouvez obtenir un effet similaire en
$ (geany >/dev/null 2>&1 &)
Les crochets ouvrent un nouveau sous-shell dans lequel exécuter gedit. Les >/dev/null 2>&1
redirections de la sortie du shell vers nulle part (suppression de la sortie). Et la &
fin met le processus en arrière-plan.
Multiplexage terminal
Aussi multiplexage terminal en utilisant screen ou byobu . Vous exécutez essentiellement le programme dans un terminal qui lui est propre. Je peux vraiment recommander byobu pour d'autres raisons aussi. Vous trouverez ci-dessous une liste de raccourcis boybu qui pourraient vous être utiles pour vos premiers pas:
Utile:
- F2 Créer une nouvelle fenêtre
- F3 Passer à la fenêtre suivante
- F4 Passer à la fenêtre précédente
- F6 Détacher de la session et se déconnecter
- Shift-F6 Détacher de la session, mais ne pas se déconnecter
- F7 Entrer en mode de défilement / recherche
- Ctrl-F5 Reconnectez tous les sockets ou agents SSH / GPG
Moins utile:
- Shift-F2 Diviser l'écran horizontalement
- Ctrl-F2 Diviser l'écran verticalement
- Shift-F3 Déplacer le focus vers le prochain partage
- Shift-F4 Déplacer le focus vers la division précédente
- Shift-F5 Réduire toutes les divisions
- F5 Actualiser toutes les notifications d'état
- F8 Renommer la fenêtre en cours
- F9 Lancer le menu de configuration Byobu
- F12 Touche d'échappement de l'écran GNU
- Alt-Pageup Revenir dans l'historique de cette fenêtre
- Alt-Pagedown Faire défiler en avant dans l'historique de cette fenêtre
- Ctrl-a-! Activer ou désactiver tous les raccourcis clavier de Byobu
Le démon 'at' et d'autres
at
est un petit outil utile pour exécuter une commande à une heure programmée. Il peut être "abusé" de détacher une commande du shell:
echo './myprogram myoption1 myoption2' | at now
Aussi, vous pouvez examiner setsid
et start-stop-daemon
, mais les autres méthodes devraient suffire.