Disable dnsmasq/service through reboot

Having issues with your DietPi installation, or, found a bug? Post it here.
Post Reply
erikj

Disable dnsmasq/service through reboot

Post by erikj »

Hola Fuzon boards,

I'm an older hand at *nix administration, but messing with my first debian-core(ish) distro in forever.

I've installed dnsmasq from apt-get - wanted to take DHCP out of the hands of my wireless router, and no desire to revisit BIND. Went as I expected, except... the service starts at every reboot, when I've asked nicely for it not to while I monkey with some configuration settings (such as dhcp-authoritative.)

I've tried disabling through chkconfig, service, systemctl,insserv dependency, rc.local, then discovered the /DietPi/dietpi/dietpi-services from that file and tried everything(?) there, and manually inspected every /etc/rc?.d directory by hand - even tried setting ENABLED=0 in /etc/dnsmasq.conf. Still get dnsmasq firing on every reboot.

What is the magic option I'm missing? I've resorted to apt-get remove just to ensure it wasn't an installed service by default.

Thanks, and this bump aside, loving this package - especially how lean it is!

Much appreciated,
Erik
User avatar
Fourdee
Site Admin
Posts: 2788
Joined: Tue Feb 06, 2007 1:36 pm

Re: Disable dnsmasq/service through reboot

Post by Fourdee »

Hi Erik,

/DietPi/dietpi/dietpi-services controls all program services that are installed with dietpi-software. This allows us to control when each service starts/stops during boot, it also allows us to stop programs during dietpi-backup (for example) and restart them afterwards.

So 2 options:
Option 1
If you want to completely disable dnsmasq service and prevent it from ever running:

Code: Select all

systemctl mask dnsmasq
#use systemctl unmask to renable
Option 2
Because /DietPi/dietpi/dietpi-services script checks various methods for available programs (dpkg, init.d or systemd file), we will need to modify its sourcecode to disable dnsmasq being picked up as "available".
Add the following to this line:

Code: Select all

		#Disable dnsmasq control
		for ((i=0; i<${#aSERVICE_NAME[@]}; i++))
		do
			if [ "${aSERVICE_NAME[$i]}" = "dnsmasq" ]; then
				aSERVICE_AVAILABLE[$i]=0
				break
			fi
		done
Its untested, but let me know if you get any issues. Just remember, when you update DietPi, you will need to add the above code in again. This is because all DietPi scripts get overwritten during the update with the latest versions.
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal or become a DietPi patron.
erikj

Re: Disable dnsmasq/service through reboot

Post by erikj »

Ah, thanks. If I'm reading your source correctly, it looks like masking may not even take care of it if there's an init.d entry.

Still that helps me identify the problem. Will give it a go and report back. Or, is there any consequence if I just remove the dnsmasq line in your aSERVICE_NAME array? I know it wouldn't survive an upgrade - short of something kludgy in rc.local like

Code: Select all

 _dietpiver=`cat /DietPi/dietpi/.version`; sed -i".${_dietpiver}.bak" '/^\s*\"dnsmasq\"\s*$/d' /DietPi/dietpi/dietpi-services 2>/dev/null
Speaking of - mind if I ask what you're probing for dnsmasq for - such that some dietpi software would leverage it if it was there? I'd be interested in looking at some way to determine if the service you wanted it for was installed before adding it to your aSERVICE_NAME list - this is already a thorny enough problem with two startup service locations.
Post Reply