Атоматический запуск процессов в фоне
Posted on марта 9th, 2010 by AVD
Лучший способ для запуска процессов в фоне в Mac OS X — использование LaunchDaemons и LaunchAgents. Для их конфигурирования применяются простые plist файлы, используемые launchd для запуска процессов. Важное отличие LaunchDaemons в том, что они используются для запуска процессов даже в том случае, если ни один пользователь не вошел в систему.
Общий формат plist файла:
<!DOCTYPE plist PUBLIC «-//Apple//DTD PLIST 1.0//EN» «http://www.apple.com/DTDs/PropertyList-1.0.dtd»>
<plist version=»1.0″>
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>ID программы</string>
<key>OnDemand</key>
<false/>
<key>Program</key>
<string>путь к исполняемому файлу</string>
<key>ProgramArguments</key>
<array>
<string>путь к исполняемому файлу</string>
<string>аргумент #1</string>
<string>аргумент #2</string>
<string>…</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
На пример, для запуска svnserve замените выделенный жирным шрифтом текст на следущие значения:
ID программы:
org.tigris.Subversion
путь к исполняемому файлу:
/usr/bin/svnserve (или ваш путь к svnserve)
агрументы запуска (каждый в отдельной строке и обложенный тэгом ‘string’):
-d
—root=путь к корню SVN
—log-file=путь к лог-файлу
Сохраните полученный файл в «/Library/LaunchDaemons/org.tigris.Subversion.plist».
Теперь мы готовы удостовериться в работоспособности. Если вы уже запустили svnserve ранее, то завершите процесс с использованием Activity Monitor: выделите процесс в списке и нажмите кнопку «Quit Process» в тулбаре. Когда процесс закончится, он исчезнет из списка.
После того, как процесс закроется, переключитесь в Terminal и выполните следущую команду:
Введите пароль администратора. Если все прошло успешно, вам будет предложено ввести новую команду.
Для проверки того что процесс загеристрирован в launchd, можно вывести список всех зарегистрированных процессов с помощью следущей команды:
В списке должен быть элемент с именем org.tigris.Subversion.
Перезагрузите систему и проверьте, что svnserve запустился автоматически,
Categories: Общее