Итак, у меня есть команда, которая запускает веб-сервер, она работает пошагово и выводит вывод на стандартный вывод. Она выглядит так:
step 1...
step 2...
step 3...
server up and running on port 9000
Однако он зависает в ожидании ввода пользователя (это типобезопасный активатор) и при запуске из командной строки не завершается. Как мне отсоединиться от этого скрипта, ожидающего ввода пользователя, и позволить ему работать, но продолжить работу с родительской оболочкой? Я хочу отсоединиться, как только увижу, что сервер запущен.
решение1
Вариант №1: Когда сервер запущен, введите Ctrl+Z
и bg
. Ctrl+Z
выполнение процесса будет приостановлено и bg
процесс будет отправлен в фоновый режим, освобождая оболочку для ввода данных новым пользователем.Предупреждать:Ваш сервер привязан к запущенной оболочке. Если вы выйдете из этой оболочки, сервер будет убит.
Вариант №2: Запустите свой скрипт с помощью nohup
, который запустит ваш скрипт отдельно от терминала. Пример: nohup ./activator
.
Вариант №3: Запустите свой скрипт внутри screen
сеанса, а затем отсоединитесь от сеанса с помощью Ctrl+d
.