Câu trả lời:
OS X cung cấp launchctlđể kiểm soát trình nền nào được khởi động khi khởi động.
Để dừng và vô hiệu hóa Apache:
Nhập lệnh sau (nhập mật khẩu đăng nhập của bạn khi sudoyêu cầu):
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
Một vài lời về launchctl's -wlựa chọn
Các -wtùy chọn là viên đạn bạc cho dừng / vô hiệu hóa Apache. Nó yêu launchctlcầu thực hiện công việc của mình bất kể mọi cài đặt cấu hình nào có thể ngăn không cho nó dỡ dịch vụ, như được giải thích trong man launchctl:
-w Overrides the Disabled key and sets it to false or true for the load and
unload subcommands respectively. In previous versions, this option would
modify the configuration file. Now the state of the Disabled key is stored
elsewhere on- disk in a location that may not be directly manipulated by any
process other than launchd.
(Hóa ra, trong OS X Mavericks (10.9), "nơi khác trên đĩa" là /private/var/db/launchd.db/com.apple.launchd/overrides.plist.)
Các -wtùy chọn là không thể thiếu nếu bạn bắt đầu Apache với apachectl start: như được giải thích trong câu trả lời Superuser này . apachectlkhông chỉ khởi động Apache mà còn sửa đổi /private/var/db/launchd.db/com.apple.launchd/overrides.plistnhư thế này:
<key>org.apache.httpd</key>
<dict>
<key>Disabled</key>
<false/>
</dict>
Trong trường hợp cụ thể này, bạn cũng có thể sử dụng apachectl:
sudo apachectl stop
để ngăn chặn Apache và thiết lập Disabledthành true.
-w: sudo launchctl -w unload .... Nếu nó không giúp đỡ, bạn có thể gửi đầu ra của ps -ef|grep httpd|grep -v grep?
-wtrước đây, kết quả tương tự. Đây là đầu ra: pastebin.com/h14t8fEv
sudo launchctl1 ...trả lại một thông báo lỗi? Bạn có thể gửi đầu ra của grep apache /var/log/com.apple.launchd/launchd-shutdown.system.logvà sudo grep apache /var/log/system.log?
sudo: launchctl1: command not foundvà đây là đầu ra: pastebin.com/raw.php?i=zxKvYV4i
sudo apachectl starttrình khởi chạy dường như được kích hoạt lại sau khi khởi động lại.