Mac服务(相当于Windows服务)

时间:2012-06-07 10:33:06

标签: macos service daemon

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

你能给我一些样本/教程,清楚地解释这个。

谢谢

1 个答案:

答案 0 :(得分:0)

以下是我刚开始为Mac服务的一个例子:

创建文件夹的ISO映像

Matt Berther提交了这个方便的终端脚本来从OS X中的文件夹创建ISO映像。我知道我很快就会忘记如何做到这一点,所以我为此做了一个方便的服务。

第1步: 打开Automator<创建新的 "服务"

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

第3步:

  1. 设置"服务接收已选择"下载到"文件夹"
  2. 在应用程序中设置""下降到" Finder"
  3. 设置" Shell"下拉到" / usr / bin / python"
  4. 将" Pass输入设置为"下拉到"作为参数"
  5. 第4步: 在脚本本身中,使用以下代码替换现有代码:

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

    将服务保存为"创建ISO"。退出Automator。

    第5步:

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

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

      • 打开系统偏好设置>键盘>快捷方式
      • 点击左侧菜单上的服务
      • 找到您刚刚创建的服务>添加密钥对以创建快捷方式。
    3. 步骤6(可选):调试PBS [来源:A Really Old Macworld Hint]

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

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

      /System/Library/CoreServices/pbs 
      

      您的服务现在应该正常运作。

        

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