Homebrewで自動起動の設定で謎にハマった恥さらし

暫且環境

苹果操作系统10.12.6
Homebrew 1.3.2
MongDB 3.4.7

みなさん、たまにlsof -iとかで動きっぱなしのプロセスとかないかなーって調べたりしますよね?
そしてなんとなくこれ無駄なんじゃないか?killしてダメでも再起動とかでどうにかなんだろとか思ってちょっとkillしちゃうことありますよね?(ない人には多分関係のない記事です)

在我的情况下,MySQL和MongoDB都在监听状态,MySQL之前只用过一次,所以我就先kill掉了,问题都没有。然后,MongoDB现在并没有在运行,但为什么还在持续监听呢?可能是其他的MongoDB在运行吧?虽然我并不太明白,就凭一股脑的冲动我就kill掉了它。

因此…

ryusaka-MBA:~$ mongo
MongoDB shell version: 3.0.7  
connecting to: test  
2016-02-13T02:10:30.013+0900 W NETWORK  Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused  
2016-02-13T02:10:30.015+0900 E QUERY    Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed  
    at connect (src/mongo/shell/mongo.js:179:14)
    at (connect):1:6 at src/mongo/shell/mongo.js:179
exception: connect failed  

こんなエラーが・・・調べてみるとmongod –repairをしてみろとかmongod.lockを消してみろとか記事が出て来るんですが、どれも解決はせず。どうやら自動で起動できていたものが自分でsudo mongod –dbpath=/usr/local/var/mongodbと打たないと起動しなくなっていました。

看起来可以通过Homebrew自动启动(可能是在以前用Homebrew安装mongodb时设置的)

启动 MongoDB 服务

这样我认为没问题了
ryusaka-MBA:~$ mongo
……我哭了,出现了同样的错误

也许从这里开始,我会陷入一个无休止的困境,半天后…
sudo mongod –dbpath=/usr/local/var/mongodb,竟然需要sudo…
也许会…

请使用 sudo brew services start mongodb 启动 MongoDB

动了!!结果却像个烂透了似的。真是丢脸的事情。
看来根据是否加上sudo,添加的目标位置会有所不同。
不加sudo,则会添加到LaunchAgent(在用户登录时以用户权限启动);
加上sudo,则会添加到LaunchDaemon(在启动时以root权限启动)。

广告
将在 10 秒后关闭
bannerAds