Answers:
正式没有这些。苹果建议的方式是使用launchd。进行此设置的Guis包括lingon和Launch Control
至于您提到的文件,只有在通过终端登录时,才会启动主目录〜/ .bashrc,〜/ profile,〜/ .bash_profile中的文件。/ etc中的那些由壳牌在主目录中的那些,但只有当用户登录由..出发前为所有用户运行bash的手册
Unix启动脚本涉及/ etc / rc *,但对于OSX,只需使用启动的东西
/etc/bashrc
诸如此类-在启动外壳程序时会运行,就像~/.bashrc
-只要前者将在任何用户启动外壳程序时运行,而不仅仅是您的用户一样。
要在OS X上启动时运行命令,您需要使用launchd
。
如果您不想使用Lingon,则需要创建一个launchd
属性列表。这是一个XML文件,因此您可以使用自己喜欢的文本编辑器来完成此操作,也可以使用随Mac OS X开发工具一起安装的属性列表编辑器。创建以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>some.meaningful.name</string> <!-- org.mongodb.mongodb perhaps? -->
<key>OnDemand</key>
<false/>
<key>UserName</key>
<string>anAppropriateUser</string>
<key>GroupName</key>
<string>anAppropriateGroup</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/MongoDB/bin/mongod</string>
<string>--dbpath</string>
<string>/usr/local/mongo/data</string>
<string>--fork</string>
<string>--logpath</string>
<string>/usr/local/mongo/log</string>
</array>
</dict>
</plist>
保存此内容/Library/LaunchAgents/some.meaningful.name.plist
(您将需要一个管理员帐户和/或sudo
),然后打开一个终端并执行以下操作:
sudo launchctl load /Library/LaunchAgents/some.meaningful.name.plist
这将导致启动加载该项目,这将导致它在启动时启动MongoDB。作为奖励,launchd
它将监视它,并且如果它由于任何原因退出,它将被重新启动。要摆脱该项目,只需将上述命令中的load替换为unload即可。
<key>LaunchOnlyOnce</key><true/>
发出消息),则添加到字典中。
your_name.app
将创建一个名为的文件);注销,然后重新登录,您应该已完成。;)
要在登录时启动命令,可以执行以下操作:
创建一个包含命令的文本文件(bash脚本):
#!/bin/bash
# Start the MongoDB server
/Applications/MongoDB/bin/mongod --dbpath /usr/local/mongo/data --fork --logpath /usr/local/mongo/log
将此文件保存在 ~/Library/Startup.cmd
chmod +x ~/Library/Startup.cmd
@reboot
。但是我的回答允许启动图形程序,这就是为什么我认为它很有用。
cmd
而不是sh
?
如果您想要一种可在Linux和Mac OS X上使用的方法,那么cron任务应该就足够了(通过执行来编辑cron任务crontab -e
):
@reboot /path/to/script
(学分:https : //unix.stackexchange.com/questions/49207/how-do-i-set-a-script-that-it-will-run-on-start-up-in-freebsd)
我对这个问题的一个非常简单的unix答案很感兴趣,并在另一个站点上找到了它。这是解决方案的摘要。
登录外壳程序的标准是始终查找名称中带有“ profile”的bash配置文件,其顺序为:/etc/profile、~/.bash_profile,然后是〜/ .bash_login和最后是〜/ .profile。登录外壳退出时,它们显示为〜/ .bash_logout。
就我而言,我只是创建了〜/ .bash_profile,然后打开了Mac Terminal应用程序的首选项,并将“ Shell opens with”选项从默认更改为/ bin / bash。而已。干净简单。
/etc
,都应该在启动时运行?里面的东西有关系吗?