Выход из оболочки с запущенным процессом на переднем плане

Creo que el interruptor VT hizo que gnome -shell liberara los dispositivos de entrada (Método ReleaseDevice en logind dbus API ). Esto hace que logind elimine el FD del dispositivo.

Por lo tanto, es muy probable que esto se vea afectado por el problema#8344 "sesión _dispositivo _libre (sd )también elimina todos otros dispositivos fds de ese sesión". Se fusionó una solución para systemd v239.

Lo confirmé al probar una versión previa al lanzamiento -de systemd, que incluía la corrección.

... to check if it was a similar issue to "What could be using 6GB of my swap?"

Muy posiblemente. La solución para eso también se fusionó para v239 y, por lo tanto, no está presente en systemd-238-7.fc28.1.x86_64.

1
27.05.2019, 09:35
2 ответа

Процесс переднего плана предназначен для сервера ниже свойств, и они связаны с терминалом.

  • для взаимодействия с пользователем.
  • для ввода текста на ведущее псевдо-устройство -для использования оболочкой (, такой как bash ), которая подключена к ведомому псевдо-устройству -.
  • для чтения текстового вывода с ведущего псевдо-устройства -и показа его пользователю.

Так что я думаю, что это невозможно. Или запустите свой процесс как демон и направьте вывод на определенный терминал и/или файл, как это делает процесс установки.

1
27.01.2020, 23:30

В дополнение к screen/tmuxесть еще nohup. Это проще, но иногда лучше, в зависимости от конкретной ситуации. Подробнее см. здесь:nohup vs. Screen .

Обратите внимание, что nohupбудет держать процесс на переднем плане, но вы не сможете взаимодействовать с ним или видеть выходные данные на терминале. Чтобы запустить процесс в фоновом режиме, добавьте &при запуске процесса (, т.е.nohup <your command here> &).

Если процесс уже запущен с помощью nohup, вы можете повторно -получить доступ к терминалу, нажавCtrl+Z(остановить процесс ), а затем bgкоманду (отправить остановленный процесс в фоновый режим ).

РЕДАКТИРОВАТЬ(после комментария ОП ):Я не уверен, что понимаю сценарий, но, может быть, вы могли бы попробовать это:

  1. открыть окно терминала (внутри запустится какая-то оболочка)
  2. явно запустить другую оболочку (например. bash )внутри этого окна
  3. запустить процесс переднего плана во второй оболочке (без каких-либо nohupи т. д.)
  4. открыть другое окно терминала
  5. определить "среднюю" оболочку (это будет родительский процесс тестируемого процесса)
  6. отправить сигнал уничтожения в «средний» шелл.

Это превращает тестируемый процесс в «полу-демон» и дает вам доступ к оболочке верхнего уровня в первом окне терминала. Обратите внимание, что тестируемый процесс все еще подключен к терминалу, поэтому он будет завершен, когда вы закроете окно.

1
27.01.2020, 23:30

Теги

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