Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zachet-1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
492.54 Кб
Скачать
  1. Запуск демонов через суперсервер inetd. Формат файла inetd.Conf. Файл /etc/services.

Демоны — это неинтерактивные процессы, которые запускаются обычным

образом — путем загрузки в память соответствующих им программ

(исполняемых файлов), и выполняются в фоновом режиме. Обычно демо

ны запускаются при инициализации системы (но после инициализации

ядра, подробнее см. главу 3) и обеспечивают работу различных подсистем

UNIX: системы терминального доступа, системы печати, системы сетевого

доступа и сетевых услуг и т. п. Демоны не связаны ни с одним пользова

тельским сеансом работы и не могут непосредственно управляться пользо

вателем. Большую часть времени демоны ожидают пока тот или иной

процесс запросит определенную услугу, например, доступ к файловому

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

демона — процесс

init, являющийся прародителем всех прикладных

процессов в системе. Другими примерами являются

cron позволяю

щий запускать программы в определенные моменты времени,

inetd обеспечивающий доступ к сервисам системы из сети, и

sendmail обес

печивающий получение и отправку электронной почты.

Обработка SIGHUP в демонах.

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

конфигурацию, заново себя инициализирует

● либо просто пересматривает конфигурацию etc/inetd.conf

(28 стр у девочки) — специальный конфигурационный файл, предназначенный для создания прог на ip-сокетах. Для каждого порта в inetd.conf он делает listen. Если получилось подключиться, то выполняется программа, прописанная дальше.

1) Для каждого сервиса отдельная строчка:

Первое слово - имя сервиса

/etc/services - соответствие между именем сервиса и номером порта.

2 -3) Следующие два параметра:

как должен был создан сокет (stream tcp)

4) Параллельный или последовательный сервис (nowait или wait)

5) Имя пользователя, от которого должен запускаться сервер

6) Имя программы, которая должна быть запущена

7) Параметры этой программы syslogd — для ведения протоколов работы других серверов. Сервер на юникс-сокетах. Вся инфа с других серверов подается на /var/run/log (сокет) работает через Unix-сокеты по протоколу udp, предназначен для ведения

протоколов работы других демонов.

Сообщение:

1) Записать в файл

2) Вывести на экран пользователю

3) Прислать на stdin другой программы

4) Послать другому syslog-демону

Чтобы управлять логами, нужно их сосредоточить в одном месте:

/etc/syslog.conf

Каждая строка — действие ( первая колонка — на какое сообщение, вторая — какое действие). В первой колонке через ';' разделены приоритеты. Первая часть facility, вторая warning. Первое — к какой системе сообщение относится.

1) селектор (разделяются “ ; “ )

2) действие, которое определяется 1-м символом

/ - записать в файл

@ - переслать на другую машину

| - запустить программу и передать на stdin сообщ. Алфавитно-цифровой символ

конкретному пользователю

* - всем пользователям

+ 1) селектор состоит из 2 частей, разделяемых точкой

● служба

● уровень

Список служб жестко фиксирован: auth - сообщение, связанное с авторизацией пользователя

authpriv - не показывать всем

console - для вывода на консоль

cron — cron-демон

duemon

ftp

kern - сообщение ядра

lpr - связывает с системой печати

mail

news ­ с конференцией

ntp ­ связывает со службами точного времени

secunty ­ безопасный

syslog ­ самого syslog­демон

user ­ пользователь процесса

local 0

.......

local 7

Уровень ­ определяет важность сообщения.

emerg ­ посмертное сообщение

alert ­ ядро ОС еще может работать, но скоро ОС загнется

crit ­ ОС не может дальше работать, но проблема не в ядре

err ­ ошибка в программе

warning ­ в программе возможно есть ошибка, но она может продолжать работать

notice ­ обращает внимание на особенности поведения программы

info ­ сообщение, которое можно игнорировать

debug ­ отлад. информацию

Когда в селектор указывается уровень: селектор соответствует сообщению данного

уровня или выше

Причем, * ­ произвольная подсистема/уровень

“ = “ перед уровнем ­ сообщение только этого уровня Команда logger — для shell. Может отправлять сообщения в syslog. -p — facility и warning сообщения Команда syslog (Для Си) Первый параметр — приоритет, второй — сообщение. Openlog и closelog позволяют добавлять сообщения в логи. #include <syslog.h>

void openlog(const char *ident, int option, int facility); void syslog(int priority, const char *format, ...); void closelog(void);

closelog() закрывает описатель, используемый для записи данных в журнал. Использование closelog() необязательно.

openlog() устанавливает связь с программой, ведущей системный журнал. Строка ident добавляется к каждому сообщению и обычно представляет собой название программы. Аргумент option указывает флаг управляющий работой openlog() и соответствующих вызовов syslog(). Аргумент facility устанаваливает значение по умолчанию если не указываются соответствующие параметры при вызовах syslog(). Значения option и facility приводятся ниже. Использование openlog() тоже необязательно, оно при необходимости автоматически будет вызвано функцией syslog(), и в этом случае значение ident будет установлено равным NULL.

syslog() создает сообщение для журнала, которое передается syslogd(8). priority получаеся при логическом сложении facility и level. Остаются аргументы format (как и в printf(3)) и аргументы для format, кроме того, что сочетание %m будет заменено сообщением об ошибке strerror(errno) и будет добавлен завершающий символ новой строки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]