Может ли фоновый процесс запустить процесс переднего плана в той же оболочке?

В системе:

  1. Процесс переднего плана — назовем этот процесс Main() — запущенный в xterm запускает фоновый процесс Monitor()
  2. Через базу данных Monitor() может обнаружить удаленное прерывание и уничтожить Main()
  3. Позже база данных может указать Monitor() перезапустить Main() с другими параметрами.

Ограничения:

  1. Main() должен всегда работать на переднем плане, и,
  2. Запуск нового xterm для запуска Main() не разрешен

Тогда возникает вопрос: Может ли фоновый процесс запустить новый активный процесс в том же xterm/shell?

TCSH предпочтительнее, но Bash также приемлем.


person Elle Fie    schedule 29.10.2014    source источник
comment
Насколько я понимаю, что вы пытаетесь сделать, я не думаю, что процесс в фоновом режиме может запустить процесс с использованием xterm, о котором знает оболочка, работающая в xterm. Возможно, вы сможете запустить процесс, используя xterm, о котором оболочка не знает, но тогда вы столкнетесь с проблемами координации — и оболочка, и процесс пытаются прочитать терминал, и кто знает, какие байты получат какие бы то ни было набрал в терминале.   -  person Jonathan Leffler    schedule 29.10.2014
comment
Спасибо за ответ, Джонатан. Посоветовавшись с местными экспертами по UNIX, вы пришли к единому мнению: сделать это невозможно.   -  person Elle Fie    schedule 11.11.2014


Ответы (1)


Как упомянул Джонатан (и как я проверил независимо), это невозможно сделать без отдельного процесса-наблюдателя/демона, работающего в фоновом режиме.

person Elle Fie    schedule 14.05.2015