Перемістіть запущену програму на фон в bash


10

Якщо я запускаю програму в bash, я можу призупинити її, натиснувши Ctrl+ Z. Якщо я хочу залишити програму запущеною, я можу використовувати bgкоманду. Чи є спосіб прямо поставити програму на другий план, не потребуючи введення bg?

Уточнення : я хочу покласти програму на другий план, коли вона вже запущена, не зупиняючи її.


2
Це не дублікат. Я не хочу продовжувати роботу програми, коли вікно терміналу закрите, і я не можу набрати іншу команду. Я хочу поставити процес на задній план, коли він вже запущений.
Kalle Elmér

1
так, це не дублікат, повторіть це.
saji89

Дякуємо всім тим хлопцям, які допомогли відновити це. @ @ Калле, питання знову відкрито.
saji89

Дуже дякую! Щодо того, як насправді знайти відповідь на запитання, я думаю, що єдиний спосіб - це призупинити його спочатку, а потім перетворити на другий план.
Kalle Elmér

Відповіді:


4

Я не думаю, що неможливо перемістити запущену програму на задній план (поки процес все ще знаходиться в запущеному стані).
Однак є програма під назвою GNU-Screen , за допомогою якої можна запускати будь-яку кількість консольних програм - інтерактивні командні оболонки, програми на основі прокльонів, текстові редактори тощо. - в одному терміналі.
Ось приємний підручник на GNU-екрані.
Зауважте, що він не робить саме те, про що ви просили, але все одно відповідає меті.
Приклад:
Ось реалізація того, що ви запитали за допомогою GNU-Screen.

  1. Запуск screen
    Ви отримаєте детальну інформацію про програмне забезпечення. Натисніть повернення.
  2. Тепер ви побачите ваш звичайний термінал. Однак це вікно екрана. Введіть будь-яку команду vlc. Він запустить процес у цьому вікні.
  3. Тепер відкрийте нове вікно типу Ctrl+, Aа потім. CВи можете запустити нову команду тут. Зверніть увагу, що процес, який ви розпочали у вікні 1, все ще працює.
  4. Щоб відірватися від екрана, натисніть Ctrl+, Aа потім. DВи тепер повернетесь до свого старого termianl. Хоча будь-який процес, який ви розпочали з екрана, все ще буде запущений.

4

Наскільки мені відомо, ви можете запустити його, а потім додавати & після нього так:myprogram &

Я, можливо, тут дуже помиляюся.

[EDIT]: Якщо уважно ознайомитись з цим, якщо запустити вище, додаток закриється, коли ви закриєте термінал. Якщо ви хочете, щоб програма запускалася у фоновому режимі, тоді, наскільки я знаю, програму потрібно писати таким чином, що підтримує поведінку демона.

[EDIT 2]: nohup command & здається, ближче до того, що ви хочете досягти. Nohup дозволить програмі запускатись, і буде ігнорувати його введення та перенаправляти свій вихід у файл, названий nohup.outу поточному каталозі.


Мені все одно, чи закрито воно, коли я закриваю вікно терміналу. Я лише шукаю комбінацію клавіш у bash, яка працює як Ctrl + Z, але буде тримати процес у фоновому режимі, а не призупиняти його.
Kalle Elmér

0

Це може бути не справжньою відповіддю. Цікаво, чим відрізняється Bash між Ubuntu та MSYS.

Я запускаю MSYS, і коли я запускаю Application/Chrome &, він негайно переходить до фонового процесу. Я можу використовувати MSYS bash як наступний швидкий початок блимати.

І це питання Перемістити запущену програму на задній план із подібними намірами?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.