Почему разветвленный дочерний элемент уничтожается выходом (бывшего) родительского процессаLinux

Ответить Пред. темаСлед. тема
Anonymous
 Почему разветвленный дочерний элемент уничтожается выходом (бывшего) родительского процесса

Сообщение Anonymous »

Я пытаюсь написать очень минималистическую версию идеи «проглатывания окон», которая могла бы работать с Xterm или любым эмулятором терминала, предоставляющим опцию -e для запуска указанной программы в качестве оболочки терминал.
Я написал следующий скрипт и сохранил его в run.sh и передаю его в Xterm с помощью -e ./run.sh< /p>

Код: Выделить всё

#!/bin/sh

PROG=''
read PROG
($PROG &) && exit
Намерение состоит в том, что окно Xterm откроется, получит имя программы в качестве входных данных от пользователя, запустит программу и разветвит ее, а затем закроется. Проблема в том, что Xterm немедленно закрывается, а указанная программа никогда не открывается. Я предполагаю, что родительский процесс уничтожается до того, как дочерний процесс сможет разветвиться, но я не уверен? Выход && должен гарантировать, что родительский процесс не завершится, пока не получит код успеха от дочернего процесса.
Я изменил сценарий следующим образом, и он ведет себя так, как задумано:

Код: Выделить всё

PROG=''
read PROG
($PROG & sleep 1) && exit
Это подтверждает мою гипотезу. Я хотел бы иметь возможность удалить этот сон, потому что он делает программу очень некрасивой, оставляя исходный Xterm открытым еще на секунду.
Обратите внимание, что программы, с которыми я использую это, являются графическими. (На самом деле я тестирую его, запуская другое окно Xterm), поэтому при запуске они должны открывать свое собственное окно. Я не ожидаю, что программы CLI возьмут на себя управление окном Xterm, поскольку я намерен, очевидно, закрыть его

Подробнее здесь: https://stackoverflow.com/questions/786 ... ss-exiting
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»