1

我想创建一个 Mac 服务(相当于 Windows 服务),它应该继续在后台运行,我想从我的客户端应用程序 (GUI) 向它传递一些参数。

您能否给我一些示例/教程,清楚地解释这一点。

谢谢

4

1 回答 1

0

这是我刚刚为您入门而制作的 Mac 上的服务示例:

创建文件夹的 ISO 映像

Matt Berther提交了这个方便的终端脚本,用于从 OS X 中的文件夹创建 ISO 映像。我知道我很快就会忘记如何执行此操作,因此我为此做了一个方便的服务。

第 1 步: 打开 Automator < 创建一个新的“服务”

步骤 2: 搜索“运行 Shell 脚本”操作并将其拖到右侧的主面板上。

第 3 步:

  1. 将“服务接收选定”下拉菜单设置为“文件夹”
  2. 将“in application”下拉菜单设置为“Finder”
  3. 将“Shell”下拉菜单设置为“/usr/bin/python”
  4. 将“将输入传递为”下拉菜单设置为“作为参数”

第 4 步: 在脚本本身中,将现有代码替换为以下代码:

import sys
from subprocess import call

call('hdiutil makehybrid -o {0}.iso {0} -iso -joliet'.format(sys.argv[1]), shell=True)

将服务另存为“创建 ISO”。退出自动机。

第 5 步:

  1. 使用鼠标访问:当您在 Finder 中右键单击文件夹时,您现在应该会在菜单中看到新服务。如果您已经创建了大量服务(如我),那么它将嵌套在右键单击的“服务”子菜单中。

  2. 使用键盘快捷键访问: 如果这是您经常使用的服务,您可以为其分配键盘快捷键:

    • 打开系统偏好设置>键盘>快捷键
    • 单击左侧菜单上的服务
    • 找到您刚刚创建的服务 > 添加密钥对以创建快捷方式。

第 6 步(可选):调试 PBS [来源:一个非常古老的 Macworld 提示]

有时 Snow Leopard 中的服务会无缘无故停止工作。右键单击时上下文菜单项中缺少该菜单,并且菜单栏中的“服务”菜单仅显示“正在构建...”其他时候,同一服务可能有多个条目。这些问题总是可以(根据我的经验)在不注销或重新启动的情况下得到纠正。

技术很简单。在终端窗口中运行以下命令:

/System/Library/CoreServices/pbs 

您的服务现在应该可以工作了。

[crarko @Macworld 补充说:多一点解释对这个有好处;pbs 实用程序是一个与 Cocoa 中的粘贴板服务相关的调试工具(点击链接,并向下滚动到底部的“测试”)。运行它将强制重新扫描服务,这就是上述工作的原因。早在 2004 年的一个提示中就提到过它,所以它已经存在了一段时间。我怀疑是否有人注意到 10.6 之前的服务是否存在问题。Apple 提到它可能会在某个时候更改或被删除,所以不要无限期地依赖它。]

于 2016-09-20T16:57:09.010 回答