How to start/stop/restart launchd services from the command line?
Hi launchctl(8) is your friend. Just keep in mind that some of the services (sshd for example) are disabled in the configuration file so you will need to use the
-w switch when loading them. Here is a sshd example:
$ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
You can stop the service using the
$ sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
To list the services, as you might have already guessed use the 'list' subcommand ;)
have fun, n
To restart a service, you can use the
launchctl kickstart command, together with the
-k option. For example, to restart apache, you can use
sudo launchctl kickstart -k system/org.apache.httpd
This information is from the
launchctl manual page:
kickstart [-kp] service-target Instructs launchd to run the specified service immediately, regardless of its configured launch conditions. -k If the service is already running, kill the running instance before restarting the service. [...]
You could simply do
sudo launchctl stop com.openssh.sshd
If you don't known the full service name, you can do
sudo launchctl list
If you still don't find the service you expected, try to run without the root identity:
And you don't need to unload and load service.
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
You are looking for
SYNOPSIS launchctl [subcommand [arguments ...]] DESCRIPTION launchctl interfaces with launchd to load, unload daemons/agents and gen- erally control launchd. launchctl supports taking subcommands on the command line, interactively or even redirected from standard input. These commands can be stored in $HOME/.launchd.conf or /etc/launchd.conf to be read at the time launchd starts.