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 sudo
yêu cầu):
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
Một vài lời về launchctl
's -w
lựa chọn
Các -w
tùy chọn là viên đạn bạc cho dừng / vô hiệu hóa Apache. Nó yêu launchctl
cầ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 -w
tù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 . apachectl
không chỉ khởi động Apache mà còn sửa đổi /private/var/db/launchd.db/com.apple.launchd/overrides.plist
như 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 Disabled
thà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
?
-w
trướ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.log
và sudo grep apache /var/log/system.log
?
sudo: launchctl1: command not found
và đây là đầu ra: pastebin.com/raw.php?i=zxKvYV4i
sudo apachectl start
trình khởi chạy dường như được kích hoạt lại sau khi khởi động lại.