Question Déplacer le programme en cours en arrière-plan dans bash


Si je lance un programme dans bash, je peux le suspendre en appuyant sur Ctrl + Z. Si je veux laisser le programme en cours d'exécution, je peux alors utiliser le bg commander. Existe-t-il un moyen de placer directement le programme en arrière-plan, sans avoir à taper bg?

Clarification: Je veux mettre le programme en arrière-plan quand il est déjà en cours d'exécution, sans le suspendre.


9
2017-09-10 21:11


origine


Ce n'est pas un duplicata. Je ne veux pas garder un programme en cours d'exécution lorsque la fenêtre du terminal est fermée et je ne peux pas taper une autre commande. Je veux mettre un processus en arrière-plan quand il est déjà en cours d'exécution. - Kalle Elmér
oui ce n'est pas un duplicata, veuillez le rouvrir s'il vous plaît. - saji89
Merci à tous ceux qui ont contribué à la réouverture de ce site. @Kalle, La question est maintenant rouverte. - saji89
Merci beaucoup! Pour ce qui est de trouver une réponse à la question, je suppose que la seule façon de le faire est de la suspendre d'abord, puis de la mettre en contexte. - Kalle Elmér


Réponses:


Je ne pense pas qu'il soit possible de déplacer un programme en cours d'exécution en arrière-plan (alors que le processus est toujours en cours d'exécution).
Cependant, il y a une application appelée Écran GNU, à l'aide duquel vous pouvez exécuter un nombre illimité d'applications basées sur la console (shells de commandes interactifs, applications basées sur curses, éditeurs de texte, etc.) au sein d'un même terminal.
Voici un joli Didacticiel sur GNU-Screen.
Notez qu'il ne fait pas exactement ce que vous avez demandé, mais sert le but quand même.
Exemple:
Voici l'implémentation de ce que vous avez demandé en utilisant GNU-Screen.

  1. Courir screen
    Vous obtiendrez des détails sur le logiciel. Appuyez sur Retour.
  2. Maintenant, vous verrez votre terminal normal.Cependant c'est une fenêtre d'écran. Tapez une commande dire vlc. Il va démarrer le processus dans cette fenêtre.
  3. Maintenant, pour ouvrir un nouveau type de fenêtre Ctrl+UNE et alors CVous pouvez exécuter une nouvelle commande ici. Notez que le processus que vous avez démarré dans la fenêtre 1 est toujours en cours d'exécution.
  4. Pour se détacher de l'écran de presse Ctrl+UNE et alors Vous revenez maintenant à votre ancien termianl. Cependant, tout processus que vous avez démarré à partir de l'écran est toujours en cours d'exécution.

3
2017-09-10 22:44





À ma connaissance, vous pouvez le lancer et ensuite ajouter un Et après ça comme ça: myprogram &

Je peux me tromper ici cependant.

[MODIFIER]: En regardant de plus près, si vous utilisez ce qui précède, l'application se fermera lorsque vous fermez le terminal. Si vous souhaitez que l’application soit exécutée en arrière-plan, à ma connaissance, l'application doit être écrite de manière à prendre en charge le comportement des démons.

[EDIT 2]:  nohup command & semble être plus proche de ce que vous souhaitez atteindre. Nohup permettra à une application de s'exécuter et ignorera toutes les deux son entrée et redirigera sa sortie vers un fichier appelé nohup.out dans le répertoire en cours.


4
2017-09-10 21:51



Je ne m'inquiète pas vraiment si elle est fermée quand je ferme la fenêtre du terminal. Tout ce que je cherche, c'est un raccourci clavier dans bash qui fonctionne comme Ctrl + Z mais qui maintiendra le processus en arrière-plan au lieu de le suspendre. - Kalle Elmér


Cela peut ne pas être une vraie réponse. Je me demande ce que différent de Bash entre Ubuntu et MSYS.

Je cours MSYS et quand je cours Application/Chrome &, il va immédiatement au processus de fond. Je peux utiliser le MSYS bash lorsque l'invite suivante commence à clignoter.

Et sont ces questions Déplacer le programme en cours en arrière-plan avec des intentions similaires?


0
2018-05-18 05:36