9

I want to stop some daemons from loading at boot time, specially squid3. What is the best way of doing this?

1
  • +1 perfectly phrased for someone searching for the answer to this question.
    – msw
    Jan 26, 2011 at 2:43

5 Answers 5

6

You can use the chkconfig utility for this purpose.

sudo apt-get install chkconfig

To check the run level status of squid you can run this command:

 chkconfig --list | grep squid

This will output something like below:

squid           0:off   1:off   2:on    3:on    4:on    5:on    6:off

To turn off squid in all run level you can use this command:

sudo chkconfig  squid off

 chkconfig --list | grep squid

squid           0:off   1:off   2:off   3:off   4:off   5:off   6:off

To turn off squid in a particular run level you can use this command:

 chkconfig  --level 3  squid off
3
4

The above answers did not work for my Ubuntu 16.04.

Here is what it worked:

sudo systemctl stop squid 
update-rc.d squid disable

sudo systemctl status squid 

Although you may get an error like:

insserv: warning: current start runlevel(s) (empty) of script squid overrides LSB defaults (2 3 4 5).

insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `squid' overrides LSB defaults (0 1 6). insserv: fopen(.depend.stop): Permission denied

The service remains stopped even after reboot.

If you know why the error happens and how to fix it, please feel free to comment or edit the answer.

1
  • I think this is the correct answer
    – Toskan
    Jul 28, 2021 at 2:06
3

System daemons can use either legacy SysV init scripts or the newer Upstart.

For sysv scripts there are several management tools, one of such tools is "sysv-rc-conf" from the "sysv-rc-conf" package, install it and launch it from the terminal.

Regarding Upstart as far as I know there is no management tool yet, you need to manually rename the corresponding script from /etc/init, eg:

mv /etc/init/ufw.conf /etc/init/ufw.conf.disabled

Squid3 uses sysv init scripts, you can disable it with sysv-rc-conf .

1
  • 1
    Addendum: When moving your upstart job away, you cannot manually start it anymore. It's probably better to just uncomment the "start on" part in the .conf file.
    – htorque
    Dec 2, 2010 at 9:12
2

Squid uses the old init system, so this command should do the trick: sudo update-rc.d -f squid3 remove.

For more find-grained control of when to start/stop the service: sudo sysv-rc-conf

5
  • Ad 1.: that will also remove the links to stop the service, which is probably not what you want in case you started it manually.
    – htorque
    Dec 2, 2010 at 9:13
  • That's wrong, you can always start/stop it with /etc/init.d/squid3 start or stop.
    – evgeny
    Dec 2, 2010 at 9:23
  • It will remove the K*-links that stop the service automatically. ;)
    – htorque
    Dec 2, 2010 at 9:53
  • Who would want that anyway? ;)
    – evgeny
    Dec 2, 2010 at 10:24
  • The lazy people (ME)! :-P
    – htorque
    Dec 2, 2010 at 11:03
1

Two the simplest ways (from my point of view).

1) mv /etc/init/squid3.conf /etc/init/squid3.conf.disabled

2) comment out the following line

start on runlevel [2345]

in /etc/init/squid3.conf

1
  • Number 2 was the only solution that worked for me. Thanks.
    – Paulo
    Sep 1, 2016 at 12:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .