Mac OS: Sierra
After installing PHP, Apache, and Mysql on the Mac, I uninstalled Apache, MySQL, and Homebrew because http://localhost cannot be displayed in my browser.
In addition, considering that Apache, the standard Mac, may be in the way,
sudo apachectl stop
When I ran , I received the following error:
/System/Library/LaunchDaemons/org.apache.httpd.plist:Could not find specified service
After this,
$sudo apachectl start
Then, there was no error.
$sudo apachectl stop
I think it's done.
$which Apachectl
/usr/sbin/apachectl
Questions to ask:
1) I would like to know the cause of the error when I stopped Apache and how to deal with it.
2) How to prevent the Mac standard Apache from starting automatically (this is the code below)
sudo launchctl unload-w/System/Library/LaunchDaemons/org.apache.httpd.plist
The above error occurred when
Please tell me the cause and how to deal with it.
I'm a beginner, so it would be very helpful if you could tell me exactly what to do.
(I've learned a lot of things while dealing with it, but I'm still confused...)
The purpose of this is to prevent Apache from running on the Mac standard when you install Apache on Homebrew.
macos apache
I would like to know the cause of the error when I stopped Apache and how to deal with it.
This is probably because Apache, the Mac standard, was not originally started.Based on the results of the experiment with macOS Sierra at hand...
Launch #Apache
$ sudo apachectl start
# Verify Apache Has Been Started
$ sudo launchctl list | grep httpd
53290 org.apache.httpd
# stop
$ sudo apachectl stop
# Verify Stopped
$ sudo launchctl list | grep httpd
# try to stop again
$ sudo apachectl stop
/System/Library/LaunchDaemons/org.apache.httpd.plist—Could not find specified service
"As a countermeasure, I think ""do nothing"" is ok."
sudo launchctl unload-w/System/Library/LaunchDaemons/org.apache.httpd.plist
The above error also occurred
This is the same cause and action as sudo apachectl stop
.This is because the apachectl
command calls launchctl
on the back with the same argument as above.
Find out where the #apachectl entity is
$ which apachectl
/usr/sbin/apachectl
# find out what apachectl is actually doing
$ less apachectl
# Read scripts while scrolling through ctrl-v, option-v, ctrl-n, ctrl-p, etc.
It's relevant here:
stop | graceful-stop)
run_launchctl unload-w$LAUNCHD_JOB
ERROR = $?
;;
For stop
, we call the function run_launchctl
with the argument unload-w$LAUNCHHD_JOB
, where run_launchctl
is defined above and
run_launchctl(){
if [$UID!=0]; then
echo This operation requirements root.
exit1
fi
$LAUNCHCTL$@
}
After checking if it is running with root privileges, you have passed all arguments to the commands specified in the LAUNCHCTL
variable.LAUNCHCTL
and LAUNCHD_JOB
are further defined above and
LAUNCHCTL="/bin/launchctl"
LAUNCHD_JOB="/System/Library/LaunchDaemons/org.apache.httpd.plist"
To sum up to this point, sudo apachectl stop
will eventually execute the following command:
/bin/launchctl unload-w/System/Library/LaunchDaemons/org.apache.httpd.plist
© 2024 OneMinuteCode. All rights reserved.