Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Отлично. Службы появились.
Теперь задумаемся, а может, нам еще нужен и веб-сервер? А DNS-сервер? Что ж, пробовать, так все и сразу.
Чтобы запускать указанные и некоторые другие службы, при старте Darwin существует файл /etc/hostconfig:
# cat /etc/hostconfig
# /etc/hostconfig
##
# This file is maintained by the system control panels
##
# Network configuration
HOSTNAME=DarwinOS
# Services
AUTOMOUNT=-NO-
CUPS=-NO-
IPFORWARDING=-NO-
IPV6=-YES-
NETINFOSERVER=-NO-
NISDOMAIN=-NO-
RPCSERVER=-YES-
QTSSERVER=-YES-
WEBSERVER=-YES-
DNSSERVER=-NO-
COREDUMPS=-NO-
VPNSERVER=-NO-
Если параметр установлен в -YES-, тогда при старте указанные службы будут запущены.
Запуском apache (строка WEBSERVER=-YES-) занимается файл /System/Library/StartupItems/Apache/Apache.
Для DNS-сервера выделен файл /System/Library/Startup Items/BIND/BIND. В целом прослеживается аналогия со структурой системных файлов, например, как в Linux Slackware. В последней скрипты, запускающие определенный сервис, называются /etc/rc.d/rc.ServiceName.
Строка MAILSERVER предназначена для почтовой службы postfix, TIMESYNC – для синхронизации времени, CUPS – для сервиса, отвечающего за печать, SMBSERVER – samba-сервис, добавим самостоятельно чуть позднее.
Картина вырисовывается следующая. Сначала отрабатываются файлы /etc/rc*, а затем – соответствующие файлы в /System/Library/StartupItems.
Чтобы запустить свой сервис, необходимо создать в /System/Library/StartupItems директорию с названием сервиса. В ней должны находиться: исполняемый файл, совпадающий с названием только что созданной директории и информационный файл StartupParameters.plist.
Давайте посмотрим, как создать скрипт сервиса, отвечающего за старт samba-сервера.
#!/bin/sh
# Include system wide configuration options
. /etc/rc.common
# Start SMB services
if [ "${SMBSERVER:=-NO-}" = "-YES-" ]; then