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

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

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

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
    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 '10 at 9:12

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

  • 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 '10 at 9:13
  • That's wrong, you can always start/stop it with /etc/init.d/squid3 start or stop.
    – evgeny
    Dec 2 '10 at 9:23
  • It will remove the K*-links that stop the service automatically. ;)
    – htorque
    Dec 2 '10 at 9:53
  • Who would want that anyway? ;)
    – evgeny
    Dec 2 '10 at 10:24
  • The lazy people (ME)! :-P
    – htorque
    Dec 2 '10 at 11:03

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

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

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.

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.