Иногда нужно «отвязать» программа от окна терминала, в котором она запущена. Например, вы подключились к удалённому серверу по SSH, запустили задачу, которая не является демоном, но выполнение которой требует большого времени (может быть дни и месяцы). Если вы закроете терминал или просто оборвёте SSH сессию, то запущенная программа попросту прекратит свою работу.
Ещё один пример ситуации, когда это может понадобиться, вы работаете с безголовым сервером (без графического окружения рабочего стола) и по этой причине не можете открыть несколько терминальных окон. Поэтому вы хотите перевести программу в фон, чтобы продолжить работу с терминалом.
В этой статье описаны варианты, как закрыть терминал без остановки запущенной в нём программы.
Для этого есть два решения:
nohup команда disown
Давайте разберёмся, а в чём различия между
nohup команда
команда disown
Давайте для начала взглянем, что происходит, когда команда запускается из интерактивной оболочки (подключённой к терминалу) без :
svchost.exe : вирус убираем 100%
- Создаётся запущенный процесс foo.
- Процесс наследует stdout/stderr из оболочки (поэтому он всё ещё пишет в терминал).
- Процесс, в принципе, также наследует stdin, но как только он пытается читать из stdin, он приостанавливается.
- Он помещается в список фоновых задач, которыми управляет оболочка, что в частности означает:
- Он выводиться по jobs и к нему можно получить доступ используя %n (где n – это номер задачи).
- Его можно перевести на задачу переднего плана, используя fg, в этом случае он продолжится, будто бы вы не использовали с ним ). Например, в отличие от disown, оболочка всё ещё будет говорит вам, когда задача nohup завершена (конечно, если оболочка не закрылась раньше этого).
- , то процесс будет запущен в фоне, удалён из контроля задач оболочки и эффективно отключён от терминала.
nohup выполняет КОМАНДУ игнорируя сигналы обрыва терминальной линии.
Возможные опции nohup:
—help показать эту справку и выйти —version показать информацию о версии и выйти
Если стандартный ввод является терминалом, то он берётся из нечитаемого файла.
Если стандартный вывод является терминалом, то вывод добавляется в «nohup.out», если возможно, иначе в «$HOME/nohup.out».
Если стандартный поток ошибок является терминалом, то он перенаправляет в стандартный вывод. Чтобы записать вывод в ФАЙЛ, используйте «nohup КОМАНДА > ФАЙЛ».
ЗАМЕЧАНИЕ: ваша оболочка может предоставлять свою версию nohup, которая обычно перекрывает версию, описанную здесь. Пожалуйста, обращайтесь к документации по вашей оболочке, чтобы узнать, какие ключи она поддерживает.
Заметка основывается на источниках:
- http://unix.stackexchange.com/questions/4004/how-can-i-close-a-terminal-without-killing-the-command-running-in-it
- http://unix.stackexchange.com/questions/3886/difference-between-nohup-disown-and
Связанные статьи:
- 5 способов сделать так, чтобы программа не останавливалась после отключения SSH (100%)
- Как пользоваться screen для управления терминалами Linux и отсоединения процессов от терминала (62.2%)
- Как пользоваться tmux для создания нескольких терминалов внутри одной консоли (62.2%)
- Terminator: эмулятор терминала для управления несколькими окнами терминала на Linux (52.7%)
- Различия между Login shell и Non login shell (оболочка с входом и оболочка без входа) (52.7%)
- Как запускать несколько экземпляров приложения с Панели в Cinnamon (RANDOM — 50%)
Источник: zalinux.ru
КАК УБИТЬ ЛЮБОЙ ПРОЦЕСС В WINDOWS
как остановить выполнение команды в командной строке windows 10
в недавнем выпуске Windows 10 командной строки не могу остановить выполнение..есть другие варианты ?
задан BlueBerry — Vignesh4303
15.01.2023 14:00 2500
- command-line
- keyboard-shortcuts
- windows
- windows-10-preview
3 ответа
CTRL+C будет посылать break (остановить выполнение), когда текст не выбран. Попробуйте 😉
отвечен misha256 2023-01-16 21:48
У меня было то же самое происходит с Ctrl+C не останавливая процесс Tracert. Однако Ctrl + Pause / Break сделал.
Это было на Windows 10 построить 1709 с обновлениями текущих по состоянию на 06-27-2018. Я подозреваю, что все, что происходит, будет специфичным для машины по какой-то странной причине.
отвечен Afterburne 2023-01-17 00:05
отвечен T.Todua 2023-01-17 02:22
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]
Ваш ответ
Опубликуйте как Гость или авторизуйтесь
Опубликовать ответ
Похожие вопросы про тегам:
command-line
- ‘impdp’ не распознается как внутренней или внешней командой, исполняемой программой или пакетным файлом
- Удалить пароль пользователя с помощью команды «net»‘
- Рекурсивно выполнить команду Linux ‘ar’
keyboard-shortcuts
- Сочетание клавиш для вставки подписи в Outlook 2007 или вторые?
- Как использовать клавиатуру для переключения мыши между левой и правой рукой?
- Назначение сочетания клавиш Notepad++ всегда не работает
- Запретить Windows 10 сброс приложений по умолчанию?
- Как заставить Foxit Reader запомнить размер и положение последнего окна?
- сделать OpenVPN работать как Служба, но не автоматическое подключение на Windows
windows-10-preview
- Как удалить / сбросить подсистему Windows для Linux на Windows Insider сборки 14316
- «Эта операция требует интерактивного оконного терминала» ошибки при установке драйверов
- Приложения Windows 10 в полноэкранном режиме по умолчанию
Недавние вопросы
- 7 Какое максимальное количество разделов можно создать на жестком диске?
- 3 Таблица прилипает к верхней части страницы, как ее удалить?
- 6 При двусторонней печати как исправить, что задняя страница печатается вверх ногами?
- 4 Как превратить оглавление в простой форматированный текст?
- 5 Что значит 1Rx8 и 2Rx8 для оперативной памяти и совместимы ли они?
- 10 Копирование и вставка в Windows PowerShell
- 13 Сочетание клавиш для сворачивания удаленного рабочего стола
- 1 Как включить фон рабочего стола на удаленном компьютере?
- 5 Как сделать ярлык на рабочем столе доступным для всех пользователей в Windows 10
- 1 Зачем Windows 10 нужна служба очереди сообщений и почему она установлена по умолчанию?
Недавние публикации
Наушники Wireless и True Wireless: чем они отличаются?
Не включается iPad: причины и решения проблемы
Как ускорить передачу данных по Bluetooth
Как правильно приобрести подержанный iPhone?
Каковы преимущества фотоэлектрической системы?
5 лучших USB–пылесосов для клавиатуры
Как выбрать чехол-аккумулятор для смартфона
Мобильный телефон Razr: новая складная раскладушка от Motorola стоит 1200 евро
Компания Nothing: смартфон Phone 2 должен быть «более премиальным» и выйти в этом году
UMTS — История технологии сотовой связи
Выбор домена
3D-печать: будущее массового производства
Искусственный интеллект в малом бизнесе: как улучшить эффективность и конкурентоспособность
Ошибки, которых стоит избегать при продвижении сайта
Высокие технологии в Windows: что это такое и как их использовать в своих приложениях
- Конструктор автоворонок для мессенджеров: упрощение коммуникации и автоматизация бизнес-процессов
- Осознанные воспоминания – технология «живых» фото
Акции IT-компаний [26.06]
Apple $173,24 +0,81% Amazon $114,49 -1,94% Microsoft $325,19 +3,61% Google $123,44 +2,11% Netflix $364,74 -0,03% Intel $27,45 -5,34% Facebook $254,49 +2,11% Tesla $185,54 +1,44% Tencent $322,40 -3,01% Цитата дня
Все дети — художники. Проблема в том, чтобы остаться художником, когда ты вырос.
- Какое максимальное количество разделов можно создать на жестком диске?
- Таблица прилипает к верхней части страницы, как ее удалить?
- При двусторонней печати как исправить, что задняя страница печатается вверх ногами?
- Как превратить оглавление в простой форматированный текст?
Источник: kompsekret.ru
Есть ли сочетание клавиш для приостановки вывода окна CMD во время его работы?
Я нахожусь в процессе запуска пакетного сценария, который занимает очень много времени и чей вывод быстро увеличивается с нечитаемой скоростью. Существует ли сочетание клавиш, которое позволяет приостановить консоль CMD, на которой она в данный момент находится, чтобы остановить и прочитать вывод, а затем снова запустить ее с того же места?
Там всегда CTRL-S. Затем CTRL-Q для перезапуска.
Вы можете захватить поле прокрутки и переместить его вверх, это эффективно приостановит прокрутку. Затем вы можете нажать клавишу со стрелкой вниз, чтобы перейти к нижней части буфера.
Разве это не целевое назначение клавиши «Scroll Lock»?
Я не видел этого в других ответах.
Я считаю, что последовательные управляющие последовательности «Ctrl-S» XOFF и «Ctrl-Q» XON являются ключевыми последовательностями, предназначенными для решения этой проблемы.
Я изменил это, чтобы лучше ответить по нескольким причинам. По результатам исследований клавиша Pause / Break сама по себе останавливает вывод, но не выполнение, о чем другой ответ не упоминает. Ctrl + Pause / Break должен использоваться, чтобы остановить выполнение, и это немного более громоздко для ввода на большинстве клавиатур, чем Ctrl + S и Ctrl + Q (это можно сделать только левой рукой). Тем не менее, Ctrl + Pause / Break имеет то преимущество, что вам не нужно запоминать две дополнительные комбинации клавиш, поэтому оба ответа хороши, я просто хотел бы, чтобы этот получил те положительные отзывы, которых он заслуживает.
Обратите внимание, что хотя этот ответ является источником вопроса для Unix / Linux, сочетания клавиш отлично работают на CMD.exe, по крайней мере на моей ОС Windows 7.
Ваша клавиатура содержит Pause/Break ключ? Это хорошо послужило бы для этого. Вот как это выглядит или, по крайней мере, используется для:
В качестве интересного бонуса этот ключ также можно использовать во время процедуры POST (Power On Self Test, которая запускается при включении компьютера) для чтения выходных данных из BIOS.
Если у вас нет этой клавиши, комбинация Control + NumLock должна работать точно так же, и, согласно Википедии , существуют другие варианты в зависимости от вашего производителя .
Чтобы возобновить выполнение, нажмите Enter .
Обратите внимание, что на некоторых клавиатурах у вас может быть специальная клавиша блокировки прокрутки (обычно отмеченная ScrLk ), которая может служить аналогичной цели.
С пингом, кажется, остановить выполнение. это очень странно, поскольку ping — это отдельный исполняемый файл. Кроме того, при приостановке процесс ping.exe остается в проводнике процессов до тех пор, пока ему не будет разрешено завершить работу. в то время как пауза, все его потоки входят Wait:Executive , и, кажется, не пульсируют периодически. Захватывающий.
Другой трюк, который мне нравится использовать, — пометить текст мышью (у меня всегда включен режим быстрого редактирования). Это останавливает вывод (и, следовательно, выполнение, так как программа, которая пишет в stdout, ожидает, пока не будет записан поток).
Вы можете использовать команду «больше». Хотя это не совсем то, что вы ищете, оно ограничит вывод экрана на страницу.
Это лучшее решение, потому что приостановка вывода в нужный момент практически невозможна, учитывая скорость, с которой обычно производится вывод. Для пояснения вы должны использовать канал после вашей команды, а затем БОЛЬШЕ. Например, NETSH HTTP SHOW SSLCERT | БОЛЬШЕ
Windows не имеет «более» родной
Добавление еще одного полезного способа для оболочек Linux . (Но, может быть, хорошо в окнах, попробуйте!)
Нажатие ctrl + z повесит программу. (Сообщение: остановлено)
Чтобы запустить его снова в своем предыдущем состоянии, как если бы оно было приостановлено:
Тип fg
Или для многократного использования: program_name_previously_ctrl + z_stopped ` fg
Здесь нужно добавить еще пару методов, если мы тщательно проработаем:
1) В дополнение к кнопке Pause / Break вы можете дублировать ее функциональность, используя «CTRL + C».
Это заставит сценарий cmd приостановить работу и спросить вас, хотите ли вы прекратить его. Когда вы закончите поиск, вы можете выбрать «НЕТ» (или, возможно, «да», если вам это подходит), и он продолжится (или выйдите, если вы выбрали «Да»).
2) Вы также можете сделать паузу с помощью мыши, щелкнув курсор мыши в окне, чтобы выбрать текст в терминале CMD.
Возможно, вы замечали этот приостановленный вывод в прошлом и думали, что вывод будет задержан, однако, когда сценарии выполняются в интерактивных экземплярах cmd, вы фактически приостанавливаете выполнение кода (так же, как с «Pause / Break» и «CTRL». + С «Методы».
Однако, как только окно потеряет фокус, или вы нажмете, чтобы отменить приостановку, выполнение кода продолжится, и у вас не будет возможности завершить код таким способом.
Вау, ребята, вы молоды. Никогда не использовал последовательные терминалы? Попробуйте Ctrl-s / Ctrl-Q
Программное обеспечение эмулятора терминала обычно реализует поддержку XOFF / XON в качестве базовой функции. Обычно это системная консоль на современных машинах Unix и Linux, а также эмуляторы графического интерфейса, такие как xterm и консоль Win32.
В системах Windows, если на экране вывода включен режим быстрого редактирования (по конфигурации), просто нажмите на экран и выберите любую часть экрана. Программа остановит выполнение, пока вы не нажмете правой кнопкой мыши на экране, чтобы отменить выбор. Экран может потерять фокус и будет зависать до тех пор, пока вы не вернетесь и не нажмете на него правой кнопкой мыши. Помните, что любое содержимое буфера обмена, если оно есть, можно перевернуть на этом экране, если щелкнуть по нему правой кнопкой мыши.
Источник: qastack.ru
- , то процесс будет запущен в фоне, удалён из контроля задач оболочки и эффективно отключён от терминала.