Вы можете использовать следующий сценарий оболочки для переключения включенного состояния службы Mac OS X:
#!/bin/sh
# toggle OS X service
if [ "$#" -ne "1" ]
then
echo 1>&2 Usage: `basename $0` service
echo 1>&2 Toggle the enabled state of the given service.
exit 2
fi
SERVICE_NAME=$1
SERVICE_PLIST=/System/Library/LaunchDaemons/$SERVICE_NAME.plist
if [ ! -f "$SERVICE_PLIST" ]
then
echo 1>&2 Service $SERVICE_NAME is not available.
exit 1
fi
/sbin/service --test-if-configured-on "$SERVICE_NAME"
if [ $? -eq 0 ]
then
/bin/launchctl unload -w "$SERVICE_PLIST"
else
/bin/launchctl load -w "$SERVICE_PLIST"
fi
Этот сценарий использует команду service , чтобы определить, включена ли службаи затем переключает его состояние, вызывая launchctl .
Имя службы должно быть передано в качестве единственного аргумента.Чтобы включить общий доступ к сети, выполните:
sudo toggle_service.sh org.apache.httpd
Чтобы вызвать скрипт оболочки через AppleScript, вы можете использовать команду do shell script :
do shell script "toggle_service.sh org.apache.httpd" password "pwd" with administrator privileges
Использовать password
параметр, чтобы избежать запроса.