我使用 Quicksilver,这是一个非常棒的程序,可以大大提高我的工作效率。我已将其设置为登录时启动。
但是,自从 Snow Leopard 以来,它变得不太稳定了,偶尔会崩溃。而且显然它不会自动重启。
我很确定我可以使用它launchd
来确保它在我登录时始终运行。有没有一个好的指南/示例,说明如何确保进程在被杀死/终止/崩溃时重新启动?
答案1
谷歌搜索launchd quicksilver
我得到了这个网站...看起来是对的。
如果该页面消失,其要点如下:
在 QS 偏好设置中,禁用“登录时启动”
通过将以下文件存储为 ~/Library/LaunchAgents/org.quicksilver.plist 在我的帐户中创建一个新的 LaunchAgent(实际上我使用 Lingon 创建了该文件 - 非常方便的实用程序!):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist 版本="1.0"> <字典> <键> KeepAlive </键> <真/> <key>标签</key> <string>org.quicksilver</string> <键> ProgramArguments </键> <数组> <string>/Applications/Quicksilver.app/Contents/MacOS/Quicksilver</string> </数组> </字典> </plist>
有关man launchd.plist
可放入 launchd plist 文件中的键的更多信息,以控制 launchd 何时以及如何启动或重新启动进程。
也可以看看:创建启动守护进程和代理。
答案2
我没有尝试过,因为我没有 Mac,但有人告诉我,现在 Mac 默认 shell 是 bash。无论如何,你都可以使用登录时执行的 bash 脚本来实现这一点。
它基本上所做的是重复执行给定的命令,直到返回零,这意味着它正常关闭。
#!/bin/bash
RETVAL=1
until [ $RETVAL -eq 0 ]; do
# change this to whatever is used to launch quicksilver
/Applications/Quicksilver.app/Quicksilver
RETVAL=$?
done
编辑:为了澄清起见,将其放在一个空的文本文件中(可以选择带有 .sh 扩展名)并赋予它执行权限(chmod +x filename
),它应该可以工作。