【问题标题】:How can I make a program start up automatically in OSX?如何让程序在 OSX 中自动启动?
【发布时间】:2010-09-14 13:49:47
【问题描述】:

我有一个小程序,想在我的 mac 启动时自动打开。

因为这个程序接受命令行参数,它不像只是去系统偏好/帐户/登录项并在那里添加它那么简单......

从谷歌,我读到我可以在用户的​​主文件夹中创建一个 .profile 文件,这将执行我放入其中的任何内容...所以我在 ~ 中有一个 .profile 页面,如下所示:

-rw-r--r--@ 1 matt Staff 27 27 Sep 13:36 .profile

包含这个...

/Applications/mousefix 3.5

但它不会在启动时执行!如果我在终端中手动输入“/Applications/mousefix 3.5”,它确实可以工作。

有什么想法吗?

【问题讨论】:

  • 您的 .profile 应该在您打开终端时运行,而不是在启动时运行,也不会在您登录 GUI 时运行。这行得通吗?

标签: macos osx-leopard launchd


【解决方案1】:

你总是可以编写一个包装脚本,用你想要的参数运行它

【讨论】:

    【解决方案2】:

    从现在到未来,查看launchd 了解您想要做什么。所有其他方法已被弃用或现在不受支持。不过,这可能比您想要的要重一些。

    这也可能是您的 bash shell 版本没有正确执行您的.profile 的问题。尝试将命令放入主目录中的.bashrc,看看是否有帮助。

    【讨论】:

      【解决方案3】:

      在 MacOS 上启动时最常用的方法是使用 launchd。您可以创建一个 plist 文件来告诉它在启动时启动您的程序,其中可以包含参数。

      【讨论】:

        【解决方案4】:

        您可以使用Lingon 帮助构建launchd 的plist 文件。

        【讨论】:

          【解决方案5】:

          您可以使用可以运行终端命令的 Applescript,然后在启动时启动该 AppleScript。

          【讨论】:

            【解决方案6】:

            谢谢大家。发布的解决方案非常酷,是的,它对于这么简单的事情来说是重量级的,但很高兴知道,作为开发人员,我很乐意修补:)

            【讨论】:

            • launchd 并不是真正的重量级——它竭尽全力尽可能高效地完成它的工作。它是开源的,因此您可以自行查看:launchd.macosforge.org
            【解决方案7】:

            .profile.bash_profile 仅在您打开新的 shell(即打开终端或通过 SSH 进入)时发挥作用。另外,我相信如果 bash 检测到 .bash_profile,它不会寻找 .profile
            如果您希望它在登录时启动,我会查看有关 launchd 的其他建议

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2022-06-14
              • 2013-06-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-02-21
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多