Я хочу переместить процесс на передний план. Я знаю, что bash мне нужно использовать fg, но c как я могу это реализовать? любое предложение в качестве отправной точки для меня?как переместить фоновые процессы на передний план
ответ
Фон и передний план - это вопрос того, кто получает вход, который пользователь вводит в терминал. Процессы по-прежнему планируются операционной системой.
Если вы положили процесс на фон из своей оболочки, вы должны отключить стандартный дескриптор входного файла этого процесса от терминала оболочки. Выходы все равно могут поступать на терминал (зависит от ожидаемого поведения оболочки).
Чтобы вернуть процесс обратно на передний план, вам необходимо повторно подключить стандартный вход обратно к терминалу, чтобы процесс мог получать от него вход, то есть от пользователя снова.
Лучшая точка входа - tcsetpgrp
- функция, которая позволяет вам установить группу процессов в качестве приемника элементов управления с терминала и получить разрешение на ввод входов для выхода на терминал и обратно.
Чтобы все это работало правильно, вам также необходимо посмотреть setsid
, чтобы установить сеанс.
Последующая интересная функция: setpgid
для создания групп процессов.
Что означает * передний план * из программы без оболочки? –
Я реализую свою собственную оболочку c программированием @ScottHunter – esrtr
Вы хотите, чтобы ваша программа запускалась как демон? –