%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20launchd%20%D0%BD%D0%B0%20Mac%20OS%20X%3F.png)
У меня нет опыта работы с launchd, но я хотел бы настроить Tor и Polipo как службу, которая автоматически перезапускается каждые 24 часа или около того. Как это сделать?
решение1
Для Tor вы можете использовать этот файл launchd plist, чтобы он запускался при запуске системы. (Не требуется входить в систему как пользователь, что идеально подходит для серверов и людей, управляющих мостом или узлом, которые должны работать круглосуточно.)
Сохраните этот файл /Library/LaunchDaemons/org.torproject.tor.plist
(для этого вам понадобятся права root, поэтому используйте sudo
.)
<?xml version="1.0" encoding="UTF-8"?>
<!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>org.torproject.tor</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/your/binary/of/tor</string>
<string>-f</string>
<string>/path/to/your/torrc</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>OnDemand</key>
<false/>
<key>UserName</key>
<string>userNameToRunTorUnder-UsuallyTorOrYourOwnUsershortname</string>
<key>GroupName</key>
<string>daemon</string>
</dict>
</plist>
Замените следующую информацию на ту, которая соответствует вашей системе:
/path/to/your/binary/of/tor
Обычно это происходит /usr/local/bin/tor
, если вы установили tor из исходников или /Applications/Vidalia.app/Contents/MacOS/tor
хотите использовать бинарный файл tor из Vidalia. Или найдите его в which tor
своей системе.
/path/to/your/torrc
Если вы запускаете tor как отдельный пользователь, это должно быть в .torrc
домашнем каталоге этого пользователя. Вам нужно указатьабсолютный путьв этот файл. Например, если ваш пользователь называетсятори находится в /Users/tor
то этот путь будет/Users/tor/.torrc
userNameToRunTorUnder-UsuallyTorOrYourOwnUsershortname
Это имя пользователя, tor
под которым нужно работать. Если у вас есть отдельный пользователь (который, скорее всего, будет называтьсятор) тогда используйте его, в противном случае вы можете использовать практически любое другое имя пользователя. Если это только для вас, сделайте это своим собственным именем пользователя. (То есть, как называется ваш домашний каталог.)
Убедитесь, что привилегии элемента launchd безопасны, как того требует launchd.
sudo chown root:wheel /Library/LaunchDaemons/org.torproject.tor.plist
sudo chmod 755 /Library/LaunchDaemons/org.torproject.tor.plist
Затем запустите его с помощью
sudo launchctl load -w /Library/LaunchDaemons/org.torproject.tor.plist
Вы можете использовать очень похожий предмет для запуска polipo. Сохраните этот элемент Launchd как/Library/LaunchDaemons/fr.jussieu.pps.polipo.plist
<?xml version="1.0" encoding="UTF-8"?>
<!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>fr.jussieu.pps.polipo</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/your/binary/of/polipo</string>
<string>-c</string>
<string>/path/to/your/polipo.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>OnDemand</key>
<false/>
<key>UserName</key>
<string>userNameToRunPolipoUnder-UsuallyPolipoOrYourOwnUsershortname</string>
<key>GroupName</key>
<string>daemon</string>
</dict>
</plist>
Снова замените следующую информацию на ту, которая соответствует вашей системе:
/путь/к/вашему/двоичному/файлу/polipo
Если вы хотите использовать файл от Vidalia, используйте /Applications/Vidalia.app/Contents/MacOS/polipo, в противном случае найдите, где находится ваш исполняемый файл polipo, с помощью which polipo
. (Например, MacPorts устанавливает его в /opt/local/bin/polipo
)
/path/to/your/polipo.conf
Опять же, если вы хотите использовать файл, предоставленный Vidalia, /Applications/Vidalia.app/Contents/Resources/polipo.conf
или использоватьабсолютный путьв соответствии с вашей индивидуальной конфигурацией.
userNameToRunPolipoUnder-UsuallyPolipoOrYourOwnUsershortname
Это может быть то же имя пользователя, tor
с которым вы работаете, но это может быть и отдельный пользователь. Мне нравится разделять моих демонов.
Еще раз убедитесь, что привилегии элемента launchd безопасны, как того требует launchd.
sudo chown root:wheel /Library/LaunchDaemons/fr.jussieu.pps.polipo.plist
sudo chmod 755 /Library/LaunchDaemons/fr.jussieu.pps.polipo.plist
Затем запустите его с помощью
sudo launchctl load -w /Library/LaunchDaemons/fr.jussieu.pps.polipo.plist
Предостережение: эта установка ненетперезапускайте демоны каждые 24 часа по запросу. Я не думаю, что это необходимо, так как у меня никогда не было проблем со стабильностью tor
. (Я запускал узлы в течение нескольких лет на Mac OS X.)
tor
делаетнетвообще не управлять спящим режимом системы. Поэтому если вы переводите свой Mac в спящий режим, вам нужно перезапустить его, tor
чтобы он снова надежно построил цепи.
Это описание предназначено для Mac, которые в любом случае работают. Можно запустить его от имени пользователя и только при графическом входе без необходимости root
привилегий.
Вот так должно быть.
PS: Пожалуйста, имейте в виду, что tor
это предназначено для обеспечения доступа в случаях блокировки и цензуры, а также для обеспечения анонимности и конфиденциальности в Интернете ипочему запускать BitTorrent tor
не лучшая идея.
решение2
лингонподдержка прекращена, но все еще работает и является лучшим инструментом для управления launchd, если у вас нет опыта.