2010-09-10 31 views
1

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

回答

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参数,以避免被提示。

+0

有没有一种方法可以将我的密码保存在applescript中,所以我不必在命令中输入密码?我想在Quicksilver中使用它并为其设置键盘快捷键。 – Marc 2010-09-10 21:31:27

+0

@Marc看到我更新的答案。 – sakra 2010-09-11 07:57:46

+0

所以我试图编译这个,我得到了这个:http://cl.ly/2LJH - > http://cl.ly/2Lgv - > http://cl.ly/2LlE – Marc 2010-09-11 21:35:28