我想创建一个 Mac 服务(相当于 Windows 服务),它应该继续在后台运行,我想从我的客户端应用程序 (GUI) 向它传递一些参数。
您能否给我一些示例/教程,清楚地解释这一点。
谢谢
这是我刚刚为您入门而制作的 Mac 上的服务示例:
Matt Berther提交了这个方便的终端脚本,用于从 OS X 中的文件夹创建 ISO 映像。我知道我很快就会忘记如何执行此操作,因此我为此做了一个方便的服务。
第 1 步: 打开 Automator < 创建一个新的“服务”
步骤 2: 搜索“运行 Shell 脚本”操作并将其拖到右侧的主面板上。
第 3 步:
第 4 步: 在脚本本身中,将现有代码替换为以下代码:
import sys
from subprocess import call
call('hdiutil makehybrid -o {0}.iso {0} -iso -joliet'.format(sys.argv[1]), shell=True)
将服务另存为“创建 ISO”。退出自动机。
第 5 步:
使用鼠标访问:当您在 Finder 中右键单击文件夹时,您现在应该会在菜单中看到新服务。如果您已经创建了大量服务(如我),那么它将嵌套在右键单击的“服务”子菜单中。
使用键盘快捷键访问: 如果这是您经常使用的服务,您可以为其分配键盘快捷键:
第 6 步(可选):调试 PBS [来源:一个非常古老的 Macworld 提示]
有时 Snow Leopard 中的服务会无缘无故停止工作。右键单击时上下文菜单项中缺少该菜单,并且菜单栏中的“服务”菜单仅显示“正在构建...”其他时候,同一服务可能有多个条目。这些问题总是可以(根据我的经验)在不注销或重新启动的情况下得到纠正。
技术很简单。在终端窗口中运行以下命令:
/System/Library/CoreServices/pbs
您的服务现在应该可以工作了。
[crarko @Macworld 补充说:多一点解释对这个有好处;pbs 实用程序是一个与 Cocoa 中的粘贴板服务相关的调试工具(点击链接,并向下滚动到底部的“测试”)。运行它将强制重新扫描服务,这就是上述工作的原因。早在 2004 年的一个提示中就提到过它,所以它已经存在了一段时间。我怀疑是否有人注意到 10.6 之前的服务是否存在问题。Apple 提到它可能会在某个时候更改或被删除,所以不要无限期地依赖它。]