C программирование базовой оболочки - PullRequest
1 голос
/ 16 октября 2011

Я пытаюсь написать простую оболочку, которая принимает ввод из командной строки и выполняет ее как фоновую задачу.

Как разрешить дочернему процессу сообщать о родительском процессе после его завершения, например,Bash shell?

user@user-desktop:~$ sleep 10 &
[1] 3729
user@user-desktop:~$ sleep 2 &
[2] 3730
user@user-desktop:~$ 
[1]-  Done                    sleep 10
[2]+  Done                    sleep 2

Ответы [ 2 ]

3 голосов
/ 16 октября 2011

Так как это твоя домашняя работа, я не дам тебе полного ответа.

В руководстве *1003* GNU Glibc перечислены требования для оболочки управления заданиями.Посмотрим, сможете ли вы это понять.

В основном:

  • Вы должны изменить управляющий терминал, чтобы запускать задания в фоновом режиме

  • Вы должны обрабатывать SIGCHLD (или wait) для мониторинга заданий

Спросите еще раз, прочитав его.

0 голосов
/ 16 октября 2011

Вам необходимо закодировать обработчик сигнала, который обрабатывает сигнал SIGCHLD (иногда называемый SIGCLD), который отправляется родительским процессам при завершении дочернего процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...