Moje pytanie brzmi: jak wykonać proces demona MacOSX używając startu startowego z uprawnieniami root automatycznie po restarcie?Wprowadzanie Mac OSX launchctl uruchamia proces jako root przy starcie
Piszę aplikację do użytku domowego, która blokuje dostęp do stron internetowych. Jest napisany w pythonie i modyfikuje plik/ect/hosts, aby wyłączyć lub włączyć listę adresów URL. Główna aplikacja znajduje się w django, a ja stworzyłem demona skrosowanego pythona, który wymaga rzeczywistej modyfikacji pliku/etc/hosts, ponieważ są wymagane uprawnienia dostępu do konta root.
Utworzono plik plist, który działa z jednym mniejszym problemem. Po ponownym uruchomieniu proces demona ma moje zwykłe uprawnienia do logowania zamiast uprawnień roota.
Obejście problemu polega na zatrzymaniu procesu z moimi normalnymi uprawnieniami, a następnie uruchomieniu procesu za pomocą sudo.
launchctl unload /Library/LaunchAgents/com.balanceinfosystems.socialshields.twisted.plist
sudo launchctl load /Library/LaunchAgents/com.balanceinfosystems.socialshields.twisted.plist
Plik plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.balanceinfosystems.socialshields.twisted</string>
<key>Program</key>
<string>/source/social_shields/social_shields_twisted.py</string>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Thanks Rob. Pozdrawiam Keith. –