👏

Apache httpdの自動起動を停止する

2022/08/09に公開

状況

80番ポートがhttpdに占有されていて使えない問題。81番で代用できたので放置していたが、laradock導入にあたり解決することにした(80番を使うコンテナが多すぎてdockerfileの修正が大変)。

ps aux | grep httpdを実行すると、httpdのプロセスが複数実行されていた(スクショ忘れてた)。プロセスを切っても無限に復活するのでずっと諦めていた。が、たまたま見つけたこちらの記事のコマンドを入力すると解決した。Apache httpdが自動起動されていたことが原因だった。

参考記事。

macOS に標準インストールされている Apache httpd の自動起動を解除する方法 |

使用コマンド

記事の通りにコマンドを実行した。

サービスプログラム[^1]を検索するコマンド。grepでhttpdのプロセスに絞り込み。

sudo launchctl list | grep httpd`

Apache httpdを停止するコマンド。

sudo launchctl stop /System/Library/LaunchDaemons/org.apache.httpd.plist

Apache httpdを自動起動の対象から外すコマンド。

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
xxxMacBook-Pro:~ xxx$ ps aux | grep httpd
xxxMacBook-Pro:~ xxx$ lsof -i:80

これでポート解放成功!

Launchctlとは

launchctlとは、サービスプログラムを管理するコマンド。自動的にアプリケーションを処理する機能はlaunchdが担う。これがデーモンやエージェントの実行を管理する。

launchdは、システムの起動時に、コンピュータをセットアップするためにカーネルによって実行される最初のプロセスです。シェルスクリプトをデーモンとして実行されるようにしたい場合は、launchdでそのシェルスクリプトを起動してください。デーモンやエージェントを起動するためのその他のメカニズムは、Appleの判断で削除対象になります。

Macの「ターミナル」でのlaunchdを使ったスクリプトの管理

脚注

[^1] コンピュータに最初から用意されているプログラム。ファイル変換、テキストエディタ、分類/併合、整列等、プログラム作成やファイル管理を行うソフト。

Discussion

ログインするとコメントできます