Как установить команду в фоновом режиме, закрыть терминал и вернуть его в fg?

Я пытаюсь выяснить, как запустить команду в фоновом режиме, а затем вывести ее на передний план позже. Я устал от учебников и ответов, где люди заявляют, что это просто, просто добавьте & в конец команды, чтобы запустить его в фоновом режиме. Он работает только в одном окне терминала. Я хочу поместить команду в фоновый режим на одном терминале и вернуть ее обратно на передний план после повторного открытия терминала

Пример:

$ grunt &
$ jobs
$ [1]+  Running  grunt &

Конечно, после закрытия терминала ни одна работа не является

Следующий пример:

$ grunt & disown #the same behavior has: $ setsid grunt &
$ jobs
$ [nothing] #but ps shows that grunt is working

after close terminal, grunt doesn't work

Что я сделал неправильно? Может кто-нибудь объяснить мне, как запустить команду в фоновом режиме и вернуть ее на передний план.

1
задан 27 April 2016 в 04:47

2 ответа

Установить screen:
sudo apt-get install screen
Запустить screen:
screen -S session_name
Выполнить свои команды, что вам нужно. Отсоедините screen от терминала (ваши команды все еще будут работать): Нажмите CTRL + a + d Закрыть терминал. Откройте другой терминал и снова подключите последний сеанс screen:
screen -r

Для получения дополнительной информации и дополнительные опции для screen смотрите в man screen.

16
ответ дан 24 May 2018 в 12:51
  • 1
    Экран или byobu (особенно если вы используете ubuntu). Byobu основан на экране, если я прав, но я нахожу, что у него есть дополнительные функции, которые я считаю полезными и более удобными в использовании, но это вопрос мнения. – Programster 18 January 2014 в 17:40
  • 2
    Благодарю вас за хорошее предложение! Возможно, это понадобится в этой функции!) Из России с любовью & lt; 3 – Timur Fayzrakhmanov 18 January 2014 в 17:46
  • 3
    @Programster, да, Byobu is ex. экран. Он имеет как byobu-screen, так и byobu-tmux. – user.dz 18 January 2014 в 17:51
  • 4
    Я рекомендую tmux в качестве альтернативы screen. – gerrit 18 January 2014 в 21:28

Вы пробовали: byobu или tmux, которые являются терминальными мультиплексорами.

byobu-screen

Затем запустите свою команду, чтобы отсоединить:

byobu-screen -d

. Чтобы возобновить:

[ f3]

См. https://help.ubuntu.com/community/Screen

5
ответ дан 24 May 2018 в 12:51

Другие вопросы по тегам:

Похожие вопросы: