В этом разделе будет разработана процедура автоматического перевода сетевых демонов в фоновый режим и выполнения задач 1-4. Далее будут рассмотрены способы решения задач 5-7.
Ниже приведена подпрограмма become_daemon (), которая должна быть вызвана серверным процессом на самой ранней стадии инициализации. В ней применяется стандартный способ перевода программы в фоновой режим и отделения от управляющего терминала системы UNIX. В данной подпрограмме сценарий выполняет собственное ветвление и родительский процесс завершается, оставляя контроль только за дочерним процессом.
Затем дочерний процесс открывает новый сеанс, вызывая функцию setsid(), предусмотренную в модуле POSIX. Сеанс — это группа процессов, которые разделяют один и тот же терминал. В любой момент времени только один член группы имеет право чтения и записи на терминал; считается, что он находится в режиме переднего плана, в то время как другие члены группы остаются в фоновом режиме (и при попытке выполнить ввод-вывод на терминал они приостанавливаются до перехода в режим переднего плана). Эта система применяется в командных интерпретаторах для реализации управления заданиями.
Группа сеанса связана с группой процесса, но не идентична ей. Группа процесса представляет собой набор подпроцессов, которые были запущены единственным родительским процессом, и обозначается целым числом, соответствующим идентификатору PID общего предка группы.
2014-06-01 02:17:27
это интересно Прогрессивные технологии автоматизация зачастую полезно использовать и в домашних условиях. Установив систему умный дом каждый желающий может автоматизировать управление светом, климатом, мультисистемами видео-просмотра и аудио-прослушивания. Кроме всего прочего полезной составляющей умного дома может стать интеграция с системами безопасности и энергосбережения.