Stefan Tomanek
2015-06-18 11:28:54 UTC
Whenever I update my OpenWrt system using sysupgrade, unwanted services
pop up; I am using one of my devices as a simple AP, so it must not start
dnsmasq, odhcpd or the firewall service. Running sysupgrade however reinstates
the links in /etc/rc.d/ removed by '/etc/init.d/foo disable'.
I was thinking about an elegant way to change this behaviour and would like to
request some feedback.
1) do not remove the link, but change it
I tried patching rc.common to change the service link in /etc/rc.d/ to a new
script /etc/init.d/DISABLED that just forwards any call to the real script - except
the start instruction which is disabled.
For example: After running '/etc/init.d/dnsmasq disable', /etc/rc.d/S60dnsmasq
will still be present, but point toward ../init.d/DISABLED which defies service
startup.
While this all works, it doesn't help for sysupgrade purposes: the links in
/etc/rc.d/ are replaced during a sysupgrade.
2) add some flag file for disabled services
I also thought about adding a flagfile like /etc/disable/dnsmasq that get's checked
in /etc/rc.common before running the start command; this however would prevent the
manual startup of a service that is still possible with option 1).
Can anyone supply any different ideas or provide some feedback?
pop up; I am using one of my devices as a simple AP, so it must not start
dnsmasq, odhcpd or the firewall service. Running sysupgrade however reinstates
the links in /etc/rc.d/ removed by '/etc/init.d/foo disable'.
I was thinking about an elegant way to change this behaviour and would like to
request some feedback.
1) do not remove the link, but change it
I tried patching rc.common to change the service link in /etc/rc.d/ to a new
script /etc/init.d/DISABLED that just forwards any call to the real script - except
the start instruction which is disabled.
For example: After running '/etc/init.d/dnsmasq disable', /etc/rc.d/S60dnsmasq
will still be present, but point toward ../init.d/DISABLED which defies service
startup.
While this all works, it doesn't help for sysupgrade purposes: the links in
/etc/rc.d/ are replaced during a sysupgrade.
2) add some flag file for disabled services
I also thought about adding a flagfile like /etc/disable/dnsmasq that get's checked
in /etc/rc.common before running the start command; this however would prevent the
manual startup of a service that is still possible with option 1).
Can anyone supply any different ideas or provide some feedback?