Recently I had to do a little troubleshooting and I was able to pinpoint a particular process ID from
ps that I was interested in. In particular, I wanted to know which systemd unit was responsible for this particular process.
It turns out that
systemctl can give you this information! Here’s an excerpt from
status [PATTERN… PID…]]
Show terse runtime status information about one or more units, followed by most recent log data from the journal. If no units are specified, show system status. If combined with –all, also show the status of all units (subject to limitations specified with -t). If a PID is passed, show information about the unit the process belongs to.
Note: Relevant section in bold.
With the common
systemctl status command, we can find which systemd unit a particular process ID belongs to.
Let’s see a quick example with the
sshd process. We can use
ps to find the pid (or
pidof as well) and then run
systemctl status <pid>:
Super easy and straightforward. Running
systemctl status on the process ID tells us exactly what systemd unit owns this process!