Navigating: Home » Cloud Computing » Ubuntu » Managing System Processes (Daemons) In Ubuntu Managing System Processes (Daemons) In Ubuntu Posted on June 17, 2020 by devsrealm System processes or Mr. daemons are processes that run in the background on your server, most of the time, they start automatically when your server boots. An example is the OpenSSH Daemon (sshd) which is the daemon for each incoming connection, it listens to the incoming connection without needing input from the user. Ubuntu 16.04 and above use systems to manage services, with systems services are known as units. The good thing about systems is that it features lots of great tools for managing the services, an example is systemctl command, which allows users to start, stop, and view the status of units on your server. We would be using OpenSSH as an example, to check the status of a unit, we would use the status keyword, which shows you information regarding the unit, for example, it shows you whether the unit is active(meaning currently running), enabled (meaning its configured to start at boot time), and a host of others, so, let’s check the status of ssh: systemctl status ssh Output user@server:~$ systemctl status ssh ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-06-17 13:24:59 UTC; 2h 28min ago Process: 902 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Main PID: 1070 (sshd) Tasks: 1 (limit: 2317) CGroup: /system.slice/ssh.service └─1070 /usr/sbin/sshd -D Jun 17 13:24:50 blog.devsrealm.com systemd: Starting OpenBSD Secure Shell server... Jun 17 13:24:59 blog.devsrealm.com sshd: Server listening on 0.0.0.0 port 22. Jun 17 13:24:59 blog.devsrealm.com sshd: Server listening on :: port 22. Jun 17 13:24:59 blog.devsrealm.com systemd: Started OpenBSD Secure Shell server. Jun 17 13:27:31 blog.devsrealm.com sshd: Accepted publickey for pascal from 192.168.43.205 port 49836 ssh2 Jun 17 13:27:31 blog.dev You can see how it displays useful information regarding the units, so, in the above output, the name of the ssh unit is actually ssh.service, but it already understood that it is part of the name, so, you don’t need to include that. If the output is condensed, that it is saving the space on the screen, you can append the -l to the see the full log entries, e.g systemctl status -l ssh Most services in ubuntu will enable it automatically, which means, it would start by itself if your reboot the system, but other services might not, in the case of ssh example above, you can see the vendor preset is set to enabled, which means the next we start the server, ssh will be loaded automatically. Starting and Stopping a Unit To stop unit, you use the stop keyword along side the systemctl command, e.g sudo systemctl stop ssh and to start, you chang the keyword to start: sudo systemctl start ssh The one I like is the restart keyword, this takes care of the start, and stop, it stop the unit, and automatically start it: sudo systemctl restart ssh Another useful keyword is the reload command, this is useful with Apache, apache serves web pages to local or remote users, so, you won’t want to stop it as this would be disconnected from the website you are serving, so, if you’ve added some configuration or a new site, and want to only apply the changes you’ve made with disrupting it from the existing connection, use the reload command: sudo systemctl reload apache2 If you want to enabled a unit, so, it can start automatically when the server boots, you use the enable keyword, and to disable, you use the disable keyword: sudo systemctl enable ssh — to enable and sudo systemctl disable ssh — to disable The systemd also features a host of other powerful features, I’ll write more guide about it in the future.