Невозможно скрыть запущенный процесс в терминале - PullRequest
1 голос
/ 27 апреля 2009

Я вчера обновил приложения MacPorts, что заняло около 4 часов. Было неприятно видеть процесс установки на одной вкладке в терминале.

Проблема: скрыть запущенный процесс в терминале, чтобы он не занимал место в моей рабочей области

Сегодня я обнаружил, что в Bash 4 появился новый командный coproc:

сопроцесс выполняется асинхронно в подоболочке, как будто команда устанавливается между исполняющей оболочкой и сопроцессом

Я не уверен, можете ли вы использовать его для решения проблемы или нет. Мне не удалось его использовать.

Как скрыть запущенный процесс так, чтобы он не был виден в терминале, но он продолжает работать?

Ответы [ 3 ]

4 голосов
/ 27 апреля 2009

Рассматривали ли вы Ctrl + Z для приостановки процесса, а затем bg для запуска этого процесса в фоновом режиме?

Чтобы отсоединить процесс от терминала, вы можете набрать disown. Теперь вы можете закрыть терминал и даже сеанс.

Проблема здесь в том, что выходы все равно появятся в bash.

Вы также можете запустить программу на экране . Эта команда предоставляет простой способ запустить программу, закрыть консоль и получить ее позже.

2 голосов
/ 27 апреля 2009

Я подозреваю, что вы ищете nohup

nohup LongRunningNoisyProgram &

запустит программу, запишет вывод в файл, чтобы вы его не видели, отодвинет программу в фоновый режим и не отменит программу, если вы выйдете из терминала позже, пока он еще работает.

0 голосов
/ 28 апреля 2009

Есть еще одна вещь, о которой другие респонденты не рассказали: как управлять скрытыми процессами .

Предположим, у вас есть 100 фоновых процессов, созданных с помощью "nohup find / &". Вы хотите выйти из них, чтобы действительно увидеть, как работают фоновые процессы. Пожалуйста, используйте команду:

ps -ej | awk '! /grep/ && /find/ {print $2}' | xargs kill -9

Тогда вы можете узнать, как управлять ключами, чтобы скрыть процессы. Вы можете изменить его на p, где susp обозначает CTRL + z (^ Z):

stty susp p

Ключи можно посмотреть здесь:

stty -a

Пожалуйста, сравните stdouts до и после изменения. Команда особенно полезна, потому что она помогает запомнить другие команды, такие как ^ W (чтобы удалить слово).

У Джерома был отличный совет по поводу экрана. Я настоятельно рекомендую продолжить направление:

http://www.commandlinefu.com/commands/matching/screen/c2NyZWVu/sort-by-votes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...