切换网络共享

时间:2010-09-10 08:47:37

标签: applescript

我正在寻找一个用于在Snow Leopard中切换Web共享的Applescript。 I tried this但它没有禁用,只是在我再次运行它时重新启动它。或者是shell命令,只要我可以将它变成Quicksilver动作。这是我的最终目标。非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以使用以下shell脚本切换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调用shell脚本,您可以使用do shell script命令:

do shell script "toggle_service.sh org.apache.httpd" password "pwd" with administrator privileges

使用password参数以避免被提示。