На любой системе вы сможете найти множество сервисов, которые могут быть запущены разными способами.
Программное обеспечение, установленное из коллекции портов или пакетов обычно записывает свои скрипты в /usr/local/etc/rc.d which is invoked at который выполняется с аргументом start при запуске и с аргументом stop при завершении работы системы. Этот метод запуска рекомендуется, если вы запускаете сервисы как root, или же они должны быть запущены с привилегиями root. Эти скрипты устанавливаются вместе с пакетами, и соответственно, при удалении пакетов скрипты будут также удалены.
Типичный скрипт из /usr/local/etc/rc.d , выполняющийся при запуске выглядит следующим образом:
#!/bin/sh echo -n ' FooBar' case "$1" in start) /usr/local/bin/foobar ;; stop) kill -9 `cat /var/run/foobar.pid` ;; *) echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac exit 0
Этот скрипт следует выполнять с помощью start при запуске и с помощью stop при завершении работы.
Некоторые сервисы должны быть запущены inetd(8) при установке соединения с определённым портом. Это может понадобиться, например, для почтовых серверов (POP, IMAP, и т.д.). Для этого нужно отредактировать файл /etc/inetd.conf. Подробнее о работе с этим файлом вы можете прочитать в inetd(8).
Некоторые дополнительные системные сервисы могут быть не учтены в файле /etc/rc.conf. Тогда для их запуска нужно прописать соответствующую команду в /etc/rc.local. Во FreeBSD 3.1 не предусмотрен /etc/rc.local; но считается признаком хорошего тона создание этого файла администратором. Заметьте, что rc.local считается самым последним местом, куда можно прописывать команду запуска сервисов. Если есть другое место, в которое бы вы могли записать их - запишите их лучше там.
Note: Не записывайте свои команды в /etc/rc.conf. Для запуска демонов, или для выполнения вашей команды во время запуска - запишите ваш скрипт в /usr/local/etc/rc.d.
Также допускается использование cron(8) для запуска системных сервисов. Этот метод обладает рядом преимуществ, которые заключаются не только в том, что cron(8) запускает эти процессы, как владелец crontab, , но и в том, что сервисы могут быть запущены и не привилегированными пользователями.
Очень удобно пользоваться недокументированной возмоожностью cron(8), которая заключается в том, что если вместо времени указать @reboot, запланированная программа будет запущена сразу после загрузки cron(8) после перезапуска системы.