Вы должны использовать launchd
для обработки FTP-сервера.Он специально разработан для описываемой вами ситуации, а именно запуска и управления фоновыми службами.
Вам необходимо создать файл конфигурации launchd
, который можно разместить в одном из следующих мест:
~/Library/LaunchAgents
: пользовательские агенты, предоставленные пользователем. /Library/LaunchAgents
: пользовательские агенты, предоставленные администратором. /Library/LaunchDaemons
: общесистемные демоны, предоставленные администратором.
A daemon - это общесистемная служба, для которой существует один экземпляр для всех клиентов. агент - это служба, работающая для каждого пользователя.
launchd
Файлы конфигурации имеют форму список свойств.
Вам необходимо создать лист конфигурации launchd
и поместить его в одно из указанных выше мест.Вы можете настроить plist так, чтобы launchd
запускал вашу службу при запуске или периодически, или в ответ на различные действия (например, изменение содержимого папки).
Чтобы проверить, работает ли ваша работа или нетработает, вам нужно использовать Framework Service Management Framework .Вы можете запросить launchd
статус вашей работы следующим образом:
CFDictionaryRef jobDict = SMJobCopyDictionary(kSMDomainUserLaunchd, CFSTR("com.your.apps.bundle.id"));
Если работа не может быть найдена, тогда jobDict
будет NULL
.
(Если выесли вы используете демон системного уровня, вы должны заменить kSMDomainUserLaunchd
на kSMDomainSystemLaunchd
).