LINUX.ORG.RU

Как запустить шелл и передать ему ввод и вывод?

 , , ,


1

1

Очередной нубовопрос:
Чтобы всё было ясно, сразу все карты раскрою: я пишу свой миниатюрный init, нужно запустить шелл (/bin/bash, например).
Как мне это сделать? Нашёл в исходниках ядра использование do_execve для этой цели. Потыкал, но ничего не вышло. В правильном направлении копаю?
Смысл ещё и в том, что, похоже, придётся запускать этот самый шелл в отдельном треде, т.к. init тоже должен выполнять кое-какие функции (следить за демонами, например).
Но пока мне нужно просто запустить /bin/bash так, чтобы то, что он выводит оказывалось на экране, а то, что вводится с клавиатуры попадало в него.

★★★★★

Последнее исправление: CYB3R (всего исправлений: 1)
Ответ на: комментарий от CYB3R

Получается, что даже threading не нужен?

Нити работают в пределах одного процесса, ты хочешь создать новый

Gvidon ★★★★
()
Ответ на: комментарий от Gvidon

Просто я думал, что для этого не нужно создавать новых процессов, а только тред создать. А как слово fork увидел, понял, что я ошибался.

CYB3R ★★★★★
() автор топика

если совсем примитивно - fork, в потомке открываешь нужный tty и dup-аешь его на 0, 1 и 2 дескрипторы, потом exec

ananas ★★★★★
()
Ответ на: комментарий от anonymous

Именно так я и хотел сделать.

CYB3R ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.