Я тестирую способ запуска процесса отдельно от исходного процесса в sh.
Я уже спрашивал и слышал, что & используется для порождения дочернего процесса.
Вызывая программу, в данном случае glxgears, потому что в ней много STDOUT (так что я могу проверить, куда идет вывод) с использованием обратных галочек.
glxgears&
не сохраняет вывод из текущей оболочки, где
`glxgears`&
1007 * вызывает *
comp:~ user$ `glxgears`&
[1] 14511
comp:~ user$ X connection to /tmp/launch-dZalNv/org.x:0 broken (explicit kill or server shutdown).
[1]+ Exit 1 `glxgears`
comp:~ user$
Я принимаю, что [1] 14511
- это просто уведомление о правильном запуске процесса, но как X Server все еще может выводить вывод в мою оболочку?
И почему, если я запустил отдельный процесс
[1]+ Exit 1 `glxgears`
Появляется? Оболочка никогда не предупреждает меня о других процессах закрытия!
Мне кажется, я пришел к выводу, что это может иметь отношение к группе процессов, которая остается идентификатором PID моей оболочки даже после закрытия моей оболочки. Все остальные процессы имеют свою собственную группу процессов.
Даже используя
`glxgears&`&
сохраняет PID исходной оболочки в качестве группы процессов!
Я хочу иметь возможность запускать программу (в данном случае glxgears) без какой-либо связи с запускающей оболочкой, без какого-либо вывода.
Если бы вы могли также объяснить, почему X-сервер может отправить мой стартовый процесс, вывод, который будет очень признателен.