If you look in /etc/init.d you will notice that any services that are configured through upstart are just symbolic links to /lib/init/upstart so removing them from /etc/init.d just removes the link - not the script.
If you want an interface to this you can install the chkconfig
package (apt-get install chkconfig
) which gives a useful command line tool:
# chkconfig --list
acpi-support 0:off 1:off 2:on 3:on 4:on 5:on 6:off
acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off
alsa-mixer-save 0:off 1:off 2:off 3:off 4:off 5:off 6:off
anacron 0:off 1:off 2:off 3:off 4:off 5:off 6:off
apache2 0:off 1:off 2:on 3:on 4:on 5:on 6:off
apparmor 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
apport 0:off 1:off 2:off 3:off 4:off 5:off 6:off
atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
.... and so on ....
You can enable / disable services for specific run-levels (or just turn them on and off) with:
# chkconfig -s <service> <state/runlevels>
for example:
# chkconfig -s gdm off
to turn it off completely,
# chkconfig -s gdm on
to turn it on with the defaultsm or
# chkconfig -s gdm 34
to only turn it on for run levels 3 and 4.
You'll usually find this command on RHEL based systems (CentOS, Fedora, etc).
UPDATE
This is specific to Ubuntu and gdm / kdm / whatever.
When gdm starts up it calls an upstart config file /etc/init/gdm.conf
This file then references /etc/X11/default-display-manager to see if it is the default display manager for the system - if it is then it starts.
The /etc/X11/default-display-manager just contains:
/usr/sbin/gdm
You can replace this with another display manager, or remove the file entirely and it won't start gdm.
A line from the /etc/init/gdm.conf file:
[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || { stop; exit 0; }
It's saying "If the file /etc/X11/default-display-manager doesn't exist, or if it doesn't contain /usr/sbin/gdm
then exit"
Nb. Apparently some versions of ubuntu have a 'services' item in the menu of the graphical desktop that allows this to be configured. That is not present on mine. I'm specifically looking for a command line solution. – Doug – 2011-04-03T13:08:45.423
The most updated answer is on askubuntu. Read the comments too!
– Marcello Nuccio – 2011-08-20T17:07:37.0432
This is now documented in the paragraph Disabling a Job from Automatically Starting.
– Marcello Nuccio – 2011-08-20T17:14:25.417@Marcello Hm... was there a point to saying that? The 'most updated answer' is still the same answer. remove the file or delete the first few lines of it manually. – Doug – 2011-08-22T03:56:04.697
the newest solution is
echo manual >> /etc/init/<service>.override
, and this is mentioned only in the comments (and in the official documentation). I did not found it easily, that's why I mentioned it here. – Marcello Nuccio – 2011-08-24T06:05:20.393