- Все о демонах в Linux
- Общие функции демонов
- Полезные сервисные демоны Linux
- Запуск / остановка / перезапуск демонов: терминальный подход
- Список демонов вашей системы Linux
- Работа с пользовательскими демонами
- Цель любого демона
- взаимодействие пользователя с демоном
- Создание вашего демона
- Базовая структура демона
Все о демонах в Linux
В среде Linux запуск демонов происходит во время загрузки. Поскольку система Linux является идеальным клоном Unix, процесс инициализации квалифицируется как родительский процесс для демона.
S Поскольку операционная система Linux характеризуется как многозадачная операционная система, демон по определению представляет собой программу, которая непрерывно выполняется в фоновом режиме. Короче говоря, выполнение этого процесса не зависит от активного взаимодействия пользователя с системой. Обычный системный пользователь не может контролировать периодическое выполнение процесса демона.
Соглашение об именах, которое определяет большинство процессов-демонов, — это одна буква «суффикс». d. Это соглашение об именах позволяет различать обычные системные процессы и процессы, управляемые демонами. Например, sshd это процесс-демон, отвечающий за управление входящимиSSH соединения. Другой пример процесса демона:syslogd. Он отвечает за средство ведения системного журнала Linux.
В среде Linux запуск демонов происходит во время загрузки. Поскольку система Linux является идеальным клоном Unix, процесс инициализации квалифицируется как родительский процесс для демона. Чтобы запускать и останавливать демонов в вашей операционной системе Linux, вам сначала нужно получить доступ к
Общие функции демонов
- Это позволяет вашей системе правильно отвечать на сетевые запросы, связывая каждый запрос с совместимым сетевым портом. Типичный сетевой порт, обрабатываемый демонами, — это порт 80.
- Демоны позволяют запускать или выполнять запланированные системные задачи. Демон, отвечающий за эту конкретную задачу, называется cron. Это создаст cron работа который будет обрабатывать периодическое выполнение ваших запланированных задач.
- Демоны также предлагают бесценный вклад в мониторинг производительности вашей системы. Например, они могут проверить состояние RAID-массива или жесткого диска.
Полезные сервисные демоны Linux
- amd: Демон автоустановки
- анакрон: Выполнение отложенных задач cron во время загрузки
- apmd: Демон расширенного управления питанием
- atd: Использует функциональные возможности инструмента для выполнения заданий в очереди
- autofs: работает рука об руку с демоном автомонтирования, чтобы упростить установку и демонтаж системных устройств по требованию.
- crond: демон, который обрабатывает планирование задач
- cupsd: демон, который обрабатывает печать CUPS
- DHCP: демон для сервера протокола Internet Bootstrap и протокола динамической конфигурации хоста.
- закрыто: демон маршрутизации, отвечающий за несколько протоколов маршрутизации. Заменяет routed и egpup
- httpd: демон, который работает с веб-серверами, такими как Apache
- inetd: демон, связанный с Internet Superserver
- imapd: демон для сервера IMAP
- lpd: Демон линейного принтера
- memcached: демон кэширования объектов, распределенный в памяти
- mountd: монтировать демон
- MySQL: демон для сервера базы данных MySQL
- по имени: демон для DNS-сервера
- nfsd: Демон обмена сетевыми файлами
- nfslock: Поскольку nfsd связан со службами блокировки файлов, этот демон может запускать и останавливать эти службы.
- nmbd: демон для сетевого блока сообщений
- ntpd: демон для службы протокола сетевого времени
- постфикс: демон, который служит агентом почтового транспорта. Это альтернатива sendmail.
- Postgresql: демон для сервера базы данных Postgres
- направлено: демон для управления таблицами маршрутизации
- rpcbind: демон, связанный с привязкой удаленного вызова процедур
- Отправить почту: демон, который служит агентом пересылки почты
- smbd: демон для Samba SMB сервера
- smtpd: демон для простого протокола передачи почты
- snmpd: демон для простого протокола управления сетью
- Кальмар: демон, связанный с прокси-сервером для кэширования веб-страниц
- sshd: демон, связанный с Secure Shell Server
- синхронизация: демон для синхронизации системной памяти с системными файлами
- Системный журнал: демон, который ведет системный журнал
- tcpd: эта оболочка службы демона выполняет протоколы ограничения доступа, относящиеся к службам демона на основе inetd. Он реализует эти ограничения через hosts.allow и hosts.deny.
- Telnetd: демон для telnet-сервера
- vsftpd: демон для очень безопасного протокола передачи файлов
- webmin: демон для веб-сервера администрирования
- xinetd: демон, связанный с Enhanced Internet Supervisor
- xntd: демон для сетевого сервера времени
Независимо от того, являетесь ли вы новичком, средним или опытным пользователем в мире операционной системы Linux, вы никогда не забудете ознакомьтесь с любым из вышеперечисленных демонов по мере развития своих навыков и опыта в этой ОС. окружающая обстановка.
Запуск / остановка / перезапуск демонов: терминальный подход
Теперь, когда у вас есть список полезных демонов Linux, которые нужно запомнить и изучить, первое, что вам нужно знать, это как запускать, останавливать или перезапускать эти демоны. Запустив терминал Linux, примите во внимание следующие правила синтаксиса для запуска, остановки и перезапуска демона в операционной системе Linux.
запуск предпочтительного имени-демона службыостановка предпочтительного имени-демона службы перезапуск предпочтительного имени-демона службы
Заменить предпочтительное-имя-демона аргумент синтаксиса с именем системного демона Linux по вашему выбору. Вы можете выбрать его из списка демонов, выделенного выше, если он активен или уже определен в вашей системе Linux. Например, мы можем реализовать на практике вышеуказанный синтаксис, пытаясь запустить, остановить и перезапустить adaemon. Перейдите к /etc/init.d каталог на вашем терминале для получения списка доступных демонов в вашей системе Linux.
Список демонов вашей системы Linux
Более эффективный способ отметить доступные демоны в вашей системе Linux вместо перехода к /etc/init.d directory — вывести список всех определенных активных и неактивных демонов из этого каталога с помощью одной команды. Следующая команда эффективна для достижения этой цели.
Положительные [+] и отрицательные [-] в скобках знаки перед перечисленными именами демонов означают, что они либо активны, либо неактивны, соответственно.
Работа с пользовательскими демонами
Для успешного создания и реализации определенного пользователем демона необходимо соблюдать определенные правила или протоколы. Эти протоколы помогут вам полностью понять выполнение демонов в любой среде Linux. Демоны также достаточно гибки, чтобы взаимодействовать с модулями ядра через системные вызовы. Это расширение функциональности демона поддерживает его взаимодействие с аппаратными устройствами, такими как КПК (персональные цифровые помощники), принтеры и жизнеспособные внешние платы контроллеров. Строительные блоки демонов также вносят свой вклад в характерную мощность и гибкость операционной системы Linux.
Реализация связанного демона с использованием Python тщательно продемонстрирована и задокументирована Сандер Марешал . Следите за порядком выполнения при создании этого демона. Во-первых, ваша система Linux нуждается в установке пакетов Python для успешной разработки демонов. Чтобы установить Python, вы можете использовать следующую команду.
$ sudo apt установить python3-pip python3-dev
Ссылка на код демона authoredPython Сандера Марешала также предлагает усовершенствованную версию кода Python 3. Было бы полезно, если бы вы подумали о его реализации, чтобы лучше понять, как работают демоны.
Если вы не уверены, установлен ли у вас Python, выполните следующую команду на своем терминале Linux.
Цель любого демона
Поскольку один демон предназначен для обработки конкретной задачи, он должен выполнять ее безупречно. Рассматриваемая задача может быть такой же простой, как создание отчета и его отправка администратору через sendmail, или столь же сложной, как управление несколькими доменами, связанными с несколькими почтовыми ящиками. В какой-то момент демон, который вы собираетесь создать, должен будет взаимодействовать с другими существующими демонами.
взаимодействие пользователя с демоном
Не рекомендуется, чтобы системный пользователь и созданный демон взаимодействовали напрямую. Если это необходимо для демона, вы создаете его для связи с системным пользователем. Эту связь можно облегчить с помощью чего-то вроде графического интерфейса пользователя. Эта коммуникационная платформа может иметь сложный графический интерфейс GTK + или простоту набора сигналов.
Создание вашего демона
Многочисленные подходы поддерживают создание демонов. Например, вы можете использовать интерфейс командной строки для демонстрации скрипта Python следующим образом:
$ python my_python_script.py &
Вы можете сохранить код демона Python3, созданный Сандером Марешалом, в файле Python и демонизировать его с помощью приведенной выше команды. Хотя приведенная выше команда терминала легко создаст для вас демона, вам придется иметь дело с такими проблемами, как непредсказуемые выходные данные терминала. Эти проблемы зависят от того, насколько хорошо вы реорганизовали код демона Python. Кроме того, описанный выше подход не поддерживает назначение файлов блокировки PID определенным демонам. Это делает невозможным управление любым демоном, поскольку большинство из них будет выполняться мгновенно. С другой стороны, если вам нужен только простой демон, вышеупомянутый подход даст вам желаемые результаты демона.
Базовая структура демона
Прежде чем демон выполнит или выполнит намеченную функцию, он должен будет учесть некоторые предвзятые правила, ведущие к его выполнению. Вы можете думать об этих правилах как о низкоуровневой домашней работе, ведущей к ее реальной задаче. Эти правила можно разбить на следующие шаги.
- Сначала происходит создание вилки из родительского процесса.
- Изменение umask (маска режима файла) следует
- Журналы открыты для записи
- Создается уникальный SID (Session ID).
- Выполнение переключается с текущего рабочего каталога на дополнительное расположение для сохранения целостности файла.
- Стандартные файловые дескрипторы закрыты
- Выполнение целевого кода демона
Подробнее о реализации примеров демонов можно найти на GitHub .