Отменить приостановку сервера rails, который был приостановлен в другом окне терминала

#ruby-on-rails #shell #unix #terminal

#ruby-on-rails #оболочка #unix #терминал

Вопрос:

Я на Mac osx использую zsh. Если я запускаю сервер rails с «rails s», я могу перевести его в фоновый режим, нажав «ctrl-z» в моем терминале (zsh).

Если я открываю другое окно терминала, то я не вижу сервер rails, если я выполняю «задания». Однако я могу видеть это, когда я делаю «ps».

Есть ли способ, которым я могу каким-то образом «отменить приостановку» сервера rails в этом новом окне терминала?

Комментарии:

1. Я пометил этот вопрос как не по теме: на самом деле речь идет об обработке процессов в системе * nix, а не о Ruby on Rails.

2. Я не согласен, эта проблема возникла, потому что я работаю над приложением rails. Я полагаю, что у разработчика rails будет столько же шансов узнать ответ, сколько у пользователя * nix. Хотя я признаю, что тег «ruby», вероятно, не самый подходящий.

3. Достаточно справедливо, но все же: это универсальная проблема * nix / processes, и кто-то из ServerFault, вероятно, знает лучше. Мы разработчики, а не специалисты по * nix.

Ответ №1:

Вы не можете легко переместить процесс на новый tty. Самым простым решением было бы запустить его в сеансе screen, отсоединить screen и затем возобновить в новом терминале.

Ответ №2:

Задание «останавливается» путем отправки ему SIGSTOP .Ваш C-z не отправляет задание в фоновый режим. Это «останавливает» его. Затем вы можете переместить его в фоновый режим, используя bg встроенную оболочку. Однако, если вы отправите этому процессу SIGCONT ( kill -CONT <pid> ), это должно вернуть процесс на передний план. Это можно сделать из другой оболочки.

Вы не увидите его, если введете jobs потому что это задание, управляемое другой оболочкой (другое окно терминала, а не то, в котором вы ввели задания). Процессы, однако, являются «глобальными» и могут быть видны из любого места с помощью ps команды (как вы правильно указали).

Обновление: Похоже, я заговорил слишком рано. По-видимому, одного сигнала недостаточно, чтобы вернуть его на передний план. Вероятно, что-то связано с оболочкой.