我正在寻找一个用于在Snow Leopard中切换Web共享的Applescript。 I tried this但它没有禁用,只是在我再次运行它时重新启动它。或者是shell命令,只要我可以将它变成Quicksilver动作。这是我的最终目标。非常感谢!
答案 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
参数以避免被提示。