Closed5

`brew services` is supported only on macOS or Linux へ対応する

あーるあーる

Brew servicesコマンドで問題が発生した

Homebrew経由でインストールしたApacheを起動するために以下のコマンドを実行した。

# httpd サービスの起動
$ brew services start httpd

すると以下のエラーが発生。

Usage: brew services [subcommand]

Manage background services with macOS' launchctl(1) daemon manager.

If sudo is passed, operate on /Library/LaunchDaemons (started at boot).
Otherwise, operate on ~/Library/LaunchAgents (started at login).

[sudo] brew services [list] (--json):
    List information about all managed services for the current user (or root).

[sudo] brew services info (formula|--all|--json):
    List all managed services for the current user (or root).

[sudo] brew services run (formula|--all):
    Run the service formula without registering to launch at login (or boot).

[sudo] brew services start (formula|--all):
    Start the service formula immediately and register it to launch at login
(or boot).

[sudo] brew services stop (formula|--all):
    Stop the service formula immediately and unregister it from launching at
login (or boot).

[sudo] brew services kill (formula|--all):
    Stop the service formula immediately but keep it registered to launch at
login (or boot).

[sudo] brew services restart (formula|--all):
    Stop (if necessary) and start the service formula immediately and register
it to launch at login (or boot).

[sudo] brew services cleanup:
    Remove all unused services.

      --file                       Use the plist file from this location to
                                   start or run the service.
      --all                        Run subcommand on all services.
      --json                       Output as JSON.
  -d, --debug                      Display any debugging information.
  -q, --quiet                      Make some output more quiet.
  -v, --verbose                    Make some output more verbose.
  -h, --help                       Show this message.

Error: Invalid usage: `brew services` is supported only on macOS or Linux (with systemd)!

Sudoをつけろと怒られてしまった。上の実行結果はmacOSで実行した際のものだが、最後の行にはmacOSかLinuxでのみサポートされるといった内容が出力されている。launchctlが見つからないらしい。

この局面でsudoを先頭につけて実行することで実行自体は可能である。

しかし...

今まではこのエラーに出会うたびにsudoしてごまかして実行していたが、brew bundle dumpするさいにも同様のエラーが発生するようになり解決しようと踏み切った。

あーるあーる

何が問題だったか

上記スクラップではpyenvのパス問題に対して以下のようにしていた。

.zshrc
$ alias brew="PATH=/opt/homebrew/bin brew"

これだと/bin/launchctlを見に行かなくなるため自ずとエラーになってしまうとのこと。
確かにパスを/opt/homebrew/binと明示的に指定してしまっていた。

今まで使っていた際には上記のエイリアス指定で動いている場面が多かったため、パスに対して影響が出る可能性がゼロではないということを完全に見落としていたようである。

あーるあーる

brew doctor してみる

以前ハマったbrew doctorを実行する。

$ brew doctor
Your system is ready to brew.

安心のYour system is ready to brew.を確認できた。

このスクラップは2022/03/27にクローズされました