我想知道我应该将这个 bash 命令放在哪个文件中,以便它在启动时运行。
# Start the MongoDB server
/Applications/MongoDB/bin/mongod --dbpath /usr/local/mongo/data --fork --logpath /usr/local/mongo/log
Run Code Online (Sandbox Code Playgroud)
我一直在网上搜索并认为它介于~/.bashrc, ~/profile, /etc/bashrc,/etc/profile或之间~/.bash_profile。尽管我已经尝试过这些并且它们似乎在终端启动 而不是 Mac 启动时运行。我错过了一个文件吗?
Jai*_* M. 73
Stack Overflow 的另一个简单解决方案:您可以:
your_name.app将创建一个名为的文件);注销,重新登录,你应该完成。;)
Sco*_*ott 72
要在 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>
Run Code Online (Sandbox Code Playgroud)
将其保存在/Library/LaunchAgents/some.meaningful.name.plist(您将需要一个管理员帐户和/或sudo),然后打开一个终端并执行:
sudo launchctl load /Library/LaunchAgents/some.meaningful.name.plist
Run Code Online (Sandbox Code Playgroud)
这将导致 launchd 加载项目,这将导致它在启动时启动 MongoDB。作为奖励,launchd将监视它,如果它出于任何原因退出,它将重新启动。要摆脱该项目,只需将上述命令中的 load 替换为 unload。
mmm*_*mmm 41
官方没有这些。Apple 建议的方法是使用launchd。设置这个的Guis包括lingon和Launch Control
至于你提到的主目录中的文件 ~/.bashrc, ~/profile, ~/.bash_profile 只有当你通过终端登录时才会启动。/etc 中的那些由 shell 在主目录中的那些之前为所有用户启动,但仅在用户登录时运行.. bash 手册
Unix 启动脚本涉及 /etc/rc* 但对于 OSX 只使用 launchd 的东西
小智 40
要在登录时启动命令,您可以执行以下操作:
创建一个包含您的命令的文本文件(bash 脚本):
#!/bin/bash
# Start the MongoDB server
/Applications/MongoDB/bin/mongod --dbpath /usr/local/mongo/data --fork --logpath /usr/local/mongo/log
Run Code Online (Sandbox Code Playgroud)将此文件保存在 ~/Library/Startup.cmd
chmod +x ~/Library/Startup.cmdSri*_*bat 11
如果您想要一种适用于 Linux 和 Mac OS X 的方法,cron 任务应该就足够了(通过执行编辑您的 cron 任务crontab -e):
@reboot /path/to/script
Run Code Online (Sandbox Code Playgroud)
(学分:https : //unix.stackexchange.com/questions/49207/how-do-i-set-a-script-that-it-will-run-on-start-up-in-freebsd)
| 归档时间: |
|
| 查看次数: |
193824 次 |
| 最近记录: |