Installing dnsmasq with Homebrew - macos

I have installed dnsmasq using Homebrew. All seemed to go fine installing.
After installing I followed the instructions...
cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
The Problem:
dnsmasq doesn't seem to to bes working. When I run:
sudo dnsmasq
I get:
dnsmasq: failed to create listening socket for 127.0.0.1: Address already in use
When I run:
sudo launchctl stop /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
I get:
launchctl stop error: No such process
Any ideas what is going on or how to tell if it is installed and running correctly?

launchctl stop takes a job label, not a path (same with launchctl's stop and list commands). Assuming the label is homebrew.mxcl.dnsmasq, you can check the daemon's status with sudo launchctl list homebrew.mxcl.dnsmasq (if it has a PID listed, it's running), and if necessary stop it with sudo launchctl stop homebrew.mxcl.dnsmasq. If that's not the right label, check in /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist for the string following the Label key.

Related

Error starting homebrew apache service from command line (mac) [duplicate]

I'm still having some problems on using httpd (aka Apache2) after the update of my MacOs on BigSur.
I tried to make a clean reinstall of apache2 using the brew httpd services (like said in a lot of tutorials) but it still not working. I make a summary of the steps taked and I'll add some debug command.
To reinstall I done:
sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
brew install httpd
After that I reboot and launched the command:
brew services start httpd
==> Successfully started `httpd` (label: homebrew.mxcl.httpd)
But if I run the following command:
brew services list
Name Status User Plist
dnsmasq started root /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
fuseki stopped
httpd error matteo.ceradini /Users/matteo.ceradini/Library/LaunchAgents/homebrew.mxcl.httpd.plist
mongodb-community started matteo.ceradini /Users/matteo.ceradini/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist
unbound stopped
As you can see the httpd is in an error status (in fact going to localhost:8080 I get an error) and I can't understand why.
Any suggestion how to fix this?
Thank you.
Something seems to not working, but still I can't find why.
I stopped all the services (either sudo brew and brew without sudo), and next running the commands:
sudo lsof -i :80
sudo lsof -i :8080
sudo lsof -i tcp:80
sudo lsof -i tcp:8080
the results is always nothing. But if I run:
sudo brew services start httpd
==> Successfully started `httpd` (label: homebrew.mxcl.httpd)
The httpd will not start (even if in the terminal command it says yes):
sudo brew services list
httpd error root /Library/LaunchDaemons/homebrew.mxcl.httpd.plist
And if I check the apachetl error I get always that the port 80 is occupied, even if there isn't processes on that port:
apachectl -e error
(48)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
I urgently need to find a solution for this bug. It seems that in some httpd is corrupted, even if I uninstall and reinstall again
UPDATE:
I really don't know how I did it, but now it's working. I stopped all the brew httpd services and I restard apache using the command:
sudo apachectl -k start
and that worked for me
I just had exactly the same issue on Monterey. As digging in, it seems that the problem was a symbol not found ( _apr_bucket_alloc_aligned_floor ), expected in: /usr/lib/libaprutil-1.0.dylib.
Reinstalling apr-util fixed my case:
brew reinstall apr-util
FIRST ANSWER:
Sounds like the service started OK then later (or immediately) died, and reports an error. Using the command 'apachectl -e error' should provide details, but you'd wanna check the logs ('vi /usr/local/var/log/httpd/error_log', then shift-G [to goto end]).
SECOND (EXPLAINATION) ANSWER:
"
If you use (sudo) brew services ... to start httpd you have to use the proper (sudo) brew services list command to check the status:
If you start it as root then list it with root privs:
sudo brew services start httpd > sudo brew services list
or with user privs:
brew services start httpd > brew services list.
"
Judging by the result from sudo apachectl -e error, it cannot use port 8080 because another app is using it.
The first warning - can be ignored - or set the FQDN in httpd.conf. Usually this is in the '/usr/local/etc/httpd' folder. Edit with sudo vi /usr/local/etc/httpd/httpd.conf. (I like vi - use whatever you feel comfortable with - sudo open -e /usr/local/etc/httpd/httpd.conf is common).
The default config has the line #ServerName www.example.com:8080, remove that '#' and replace 'www.example.com:8080' with 'MBP-Matteo.local' - or whatever.
Type sudo lsof -i tcp:8080 to list all apps using port 8080, mostly only apps that LISTEN are important.
Next error: You must stop that other app which is using port 8080 (and prevent starting on boot) - or - set Apache to use a different port. (Note: If you choose a port lower than 1024, 'sudo' must be used to start the service.) Usually port 80 is devoted to Apache. The port to be used can be set by editing the config file, as above, then find the line 'Listen 8080', and replace 8080 with the desired port.
After the changes, try to start again with [sudo] 'brew services start httpd'. Then check with [sudo] 'brew services list'. Hopefully all works fine.
FIRST ANSWER: Sounds like the service started OK then later (or immediately) died, and reports an error. Using the command 'apachectl -e error' should provide details, but you'd wanna check the logs ('vi /usr/local/var/log/httpd/error_log', then shift-G [to goto end]).
The first command gives this result:
sudo apachectl -e error
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using MBP-Matteo.local. Set the 'ServerName' directive globally to suppress this message
(48)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:8080
no listening sockets available, shutting down
AH00015: Unable to open logs
And the file '/usr/local/var/log/httpd/error_log' is empty
SECOND (EXPLAINATION) ANSWER: " If you use (sudo) brew services ... to start httpd you have to use the proper (sudo) brew services list command to check the status:
The results doesn't change if I executed brew commands with both sudo or without (given that previously I was using without sudo)
Any suggestions?
my solution, stop httpd service, then check httpd.conf and check DocumentRoot "/opt/homebrew/var/www"
<Directory "/opt/homebrew/var/www"> when returning to the original state this route, restart the httpd service and it worked without problems.
A simple brew reinstall httpd fixed it for me. All .conf files remained intact after reinstall for anyone wondering.

Why is spotifyd daemon failing to start

Every time I run the command brew services start spotifyd on my terminal, the error Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/homefolder/Library/LaunchAgents/homebrew.mxcl.spotifyd.plist` exited with 5. appears, preventing me from using the service.
I have tried:
sudo launchctl stop /Library/LaunchDaemons/rustlang.spotifyd.plist followed by sudo launchctl unload -w /Library/LaunchDaemons/rustlang.spotifyd.plist and then sudo launchctl load -w /Library/LaunchDaemons/rustlang.spotifyd.plist followed by sudo launchctl start /Library/LaunchDaemons/rustlang.spotifyd.plist and finally brew services restart spotifyd
But the issue remains
Well, I ended up finding a solution to the issue... running the command brew services restart spotifyd as root, meaning sudo brew services restart spotifyd actually allows for successful execution.

Clean reinstall and fix of httpd service error on macos

I'm still having some problems on using httpd (aka Apache2) after the update of my MacOs on BigSur.
I tried to make a clean reinstall of apache2 using the brew httpd services (like said in a lot of tutorials) but it still not working. I make a summary of the steps taked and I'll add some debug command.
To reinstall I done:
sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
brew install httpd
After that I reboot and launched the command:
brew services start httpd
==> Successfully started `httpd` (label: homebrew.mxcl.httpd)
But if I run the following command:
brew services list
Name Status User Plist
dnsmasq started root /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
fuseki stopped
httpd error matteo.ceradini /Users/matteo.ceradini/Library/LaunchAgents/homebrew.mxcl.httpd.plist
mongodb-community started matteo.ceradini /Users/matteo.ceradini/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist
unbound stopped
As you can see the httpd is in an error status (in fact going to localhost:8080 I get an error) and I can't understand why.
Any suggestion how to fix this?
Thank you.
Something seems to not working, but still I can't find why.
I stopped all the services (either sudo brew and brew without sudo), and next running the commands:
sudo lsof -i :80
sudo lsof -i :8080
sudo lsof -i tcp:80
sudo lsof -i tcp:8080
the results is always nothing. But if I run:
sudo brew services start httpd
==> Successfully started `httpd` (label: homebrew.mxcl.httpd)
The httpd will not start (even if in the terminal command it says yes):
sudo brew services list
httpd error root /Library/LaunchDaemons/homebrew.mxcl.httpd.plist
And if I check the apachetl error I get always that the port 80 is occupied, even if there isn't processes on that port:
apachectl -e error
(48)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
I urgently need to find a solution for this bug. It seems that in some httpd is corrupted, even if I uninstall and reinstall again
UPDATE:
I really don't know how I did it, but now it's working. I stopped all the brew httpd services and I restard apache using the command:
sudo apachectl -k start
and that worked for me
I just had exactly the same issue on Monterey. As digging in, it seems that the problem was a symbol not found ( _apr_bucket_alloc_aligned_floor ), expected in: /usr/lib/libaprutil-1.0.dylib.
Reinstalling apr-util fixed my case:
brew reinstall apr-util
FIRST ANSWER:
Sounds like the service started OK then later (or immediately) died, and reports an error. Using the command 'apachectl -e error' should provide details, but you'd wanna check the logs ('vi /usr/local/var/log/httpd/error_log', then shift-G [to goto end]).
SECOND (EXPLAINATION) ANSWER:
"
If you use (sudo) brew services ... to start httpd you have to use the proper (sudo) brew services list command to check the status:
If you start it as root then list it with root privs:
sudo brew services start httpd > sudo brew services list
or with user privs:
brew services start httpd > brew services list.
"
Judging by the result from sudo apachectl -e error, it cannot use port 8080 because another app is using it.
The first warning - can be ignored - or set the FQDN in httpd.conf. Usually this is in the '/usr/local/etc/httpd' folder. Edit with sudo vi /usr/local/etc/httpd/httpd.conf. (I like vi - use whatever you feel comfortable with - sudo open -e /usr/local/etc/httpd/httpd.conf is common).
The default config has the line #ServerName www.example.com:8080, remove that '#' and replace 'www.example.com:8080' with 'MBP-Matteo.local' - or whatever.
Type sudo lsof -i tcp:8080 to list all apps using port 8080, mostly only apps that LISTEN are important.
Next error: You must stop that other app which is using port 8080 (and prevent starting on boot) - or - set Apache to use a different port. (Note: If you choose a port lower than 1024, 'sudo' must be used to start the service.) Usually port 80 is devoted to Apache. The port to be used can be set by editing the config file, as above, then find the line 'Listen 8080', and replace 8080 with the desired port.
After the changes, try to start again with [sudo] 'brew services start httpd'. Then check with [sudo] 'brew services list'. Hopefully all works fine.
FIRST ANSWER: Sounds like the service started OK then later (or immediately) died, and reports an error. Using the command 'apachectl -e error' should provide details, but you'd wanna check the logs ('vi /usr/local/var/log/httpd/error_log', then shift-G [to goto end]).
The first command gives this result:
sudo apachectl -e error
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using MBP-Matteo.local. Set the 'ServerName' directive globally to suppress this message
(48)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:8080
no listening sockets available, shutting down
AH00015: Unable to open logs
And the file '/usr/local/var/log/httpd/error_log' is empty
SECOND (EXPLAINATION) ANSWER: " If you use (sudo) brew services ... to start httpd you have to use the proper (sudo) brew services list command to check the status:
The results doesn't change if I executed brew commands with both sudo or without (given that previously I was using without sudo)
Any suggestions?
my solution, stop httpd service, then check httpd.conf and check DocumentRoot "/opt/homebrew/var/www"
<Directory "/opt/homebrew/var/www"> when returning to the original state this route, restart the httpd service and it worked without problems.
A simple brew reinstall httpd fixed it for me. All .conf files remained intact after reinstall for anyone wondering.

Cannot permanently disable httpd on Mac 10.14 Mojave after upgrade

I'm running Mojave on a Mac Pro. Prior to this version of the OS I used Apple's Server app to manage Apache/httpd. Now I can't seem to permanently kill or stop httpd. Something keeps it alive and restarts it even when I do the following as root...
launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
/System/Library/LaunchDaemons/org.apache.httpd.plist: Could not find specified service
apachectl stop
/System/Library/LaunchDaemons/org.apache.httpd.plist: Could not find specified service
apachectl -k stop
httpd (no pid file) not running
If I 'killall httpd' it just comes back. If I kill the main root httpd process in Activity Monitor, it comes right back. Restart the computer, it's still running.
I just want to permanently kill httpd so I can do an alternate installation, possibly with brew or on another machine. I don't want it running and I don't understand what keeps relaunching httpd on me.
The command you mentioned first works for me. I just added 'sudo'
local:~ mac$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
The solution explained in Answer 1 did not work for me when Mojave server.app was installed.
I had to use this:
sudo launchctl unload -w /Applications/Server.app/Contents/ServerRoot/System/Library/LaunchDaemons/com.apple.serviceproxy.plist

Installed memcached via homebrew, how to start and stop server?

I have memcached installed via homebrew.
how do I start/stop the server?
Any command-line tools to interact with memcached?
does homebrew have a way of removing a package?
When you installed it, it put a file named homebrew.mxcl.memcached.plist in /usr/local/Cellar/memcached/$version/; you copy that file into ~/Library/LaunchAgents and then tell launchd to start it with launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist.
If you were watching the console carefully during the brew install command, it should have said something about doing these exact steps. If you run brew info it'll re-print this information, e.g. brew info memcached.
You should probably read https://docs.brew.sh/Manpage -- it has more useful documentation including the brew remove command which will remove the package if you decide you don't want it.
Brew used to have a command brew services (https://thoughtbot.com/blog/starting-and-stopping-background-services-with-homebrew), now deprecated. Instead, to get always-correct advice, run this command:
brew info memcached
Via telnet: telnet localhost 11211
See also What are some useful tips/tools for monitoring/tuning memcached health?
brew remove memcached
Additionally you can run "brew info", if you have forgotten about the instructions.
→ brew info memcached
memcached 1.4.7
http://memcached.org/
Depends on: libevent
/usr/local/Cellar/memcached/1.4.6 (8 files, 156K)
You can enable memcached to automatically load on login with:
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/memcached/1.4.7/com.danga.memcached.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/com.danga.memcached.plist
Or start it manually:
/usr/local/bin/memcached
Add "-d" to start it as a daemon.
http://github.com/mxcl/homebrew/commits/master/Library/Formula/memcached.rb
To restart:
If you have the memcached starting up with launchd and your plist file has
<key>KeepAlive</key>
<true/>
Then you can just kill the process and it will reboot automagically.
ps ux | grep memcached
pkill -f memcached
ps ux | grep memcached
To stop launchd from restarting automatically:
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist
To add memcached to launchd again:
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist
To uninstall something installed by homebrew:
brew uninstall memcached
And you can also create aliases
alias memcached-start="launchctl load ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
alias memcached-stop="launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
alias memcached-restart="launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist;launchctl load ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
and after that you cant easy start/stop/restart memcached
memcached-start
memcached-stop
memcached-restart
You can also use Lunchy to set the start/stop. Lunchy is a wrapper written over launchctl. I’ve written a detailed post about this.
$ gem install lunchy
$ mkdir ~/Library/LaunchAgents
$ cp /usr/local/Cellar/memcached/$version/homebrew.mxcl.memcached.plist ~/Library/LaunchAgents/
To start memcached
$ lunchy start memcached
To stop memcahed
$ lunchy stop memcached
You can enable Memcached to automatically load on login.
This first line creates a symlink (symbolic link) from where Homebrew installed it to the LaunchAgents folder.
ln -sfv /usr/local/Cellar/memcached/1.4.17/homebrew.mxcl.memcached.plist ~/Library/LaunchAgents/
Then to launch it now:
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist

Resources