Mac OS - 使用launchctl将应用程序添加到自动启动

时间:2011-08-30 20:57:25

标签: macos autostart

我可以像这样使用launchctl启动应用程序:launchctl submit -l ProgramName - open -g -b com.company.ProgramName,它工作得很好!我可以杀死app,它会重新运行,即使它崩溃了。

但是当我注销或重启Mac时,我的进程不再运行。或者,在某些情况下,它不运行ProgramName(whitch是我的应用程序名称),但在ProgramName.app/Contents/MacOS/program_name中具有可执行文件的名称

plist文件的这种情况。我运行命令launchctl -w / Users / my_username / Library / LaunchAgents并且进程工作正常!但重启后我看不到它。

我更喜欢第一种加载流程的方法,以及为什么流程在重启后不会自动加载的任何建议?

1 个答案:

答案 0 :(得分:0)

我相信您需要将“RunAtLoad”设置为“true”才能在用户登录时启动您的应用程序。

但是使用“submit”时无法从命令行设置RunAtLoad。至少在我在线检查的launchctl.c版本中没有。

看起来您必须使用“加载”创建.plist文件,而不是使用“提交”。

更令人讨厌的是,launchctl的“加载”,不能将stdin作为.plist文件名的输入,无论是无参数,还是名称“ - ”。惭愧,也许launchctl的开发人员不是来自Unix背景。这意味着你被迫在文件系统的某个地方乱丢你的短文件,至少在你加载它之前。