Ubuntu – How to find out what a program does

documentationprocess

When I call ps ax, I get a list of running processes.

  • Some of them I know by name (firefox, java, scala, you name it).
  • Most of the others, I can find with man NAME, and try to find out, what they're doing.
  • If there is no man page for the program, I'm getting annoyed. But there is apt-cache search NAME, where I can find out from which package it comes, hoping to find an explanation. Example: apt-cache search wpa_supplicant yields wpagui - graphical user interface for wpa_supplicant.
  • If apt-cache doesn't show anything, there is still the small hope, that file $(locate NAME) finds a script or something else with further informations.
  • However, for rkit-daemon I didn't find anything useful.
  • For file $(locate gvfs-gphoto2-volume-monitor) I only find a binary executable but no informations.

I might try to decipher gnome-virtual-file-sytem ... and guess, it could be a tool to detect photo-SD cards and the like, if connected to the PC, but is there a better way to find out, what the processes, running on my PC, are doing? Do I really have to google?

Why isn't there some documentation about these processes or where do I find them? Is there an organized location to search them, or do I have to search them on a case-by-case-basis?

I guess I could download the source of the whole system, and search the source, but there is rarely additional information for users, but for developers.

Best Answer

The procedure I use is:
sudo apt-get install htop apt-file
sudo apt-file update
htop
f2 for setup
Navigate with the arrow keys Down Arrow,Right Arrow,Space to toggle tree view, Esc to get back to menu(because you can't send F10 to the gnome-terminal easily). You can also do this with the mouse.

Now you get more informative information about exactly how each process is launched and other files it might load. So oneconf-service for example.

man oneconf-service and man oneconf yield nothing. apt-cache search oneconf-service yields nothing.

apt-file search oneconf-service yields oneconf: /usr/share/oneconf/oneconf-service
apt-cache search oneconf yields oneconf - synchronize your configuration data over the network

To go back to your particular ones in question:
for apt-file search gvfs-gphoto2-volume-monitor you get:

gvfs-backends: /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
gvfs-dbg: /usr/lib/debug/usr/lib/gvfs/gvfs-gphoto2-volume-monitor

And apt-cache search gvfs-backends yields:
gvfs-backends - userspace virtual filesystem - backends

apt-file search 'rtkit-daemon' yields:

rtkit: /lib/systemd/system/rtkit-daemon.service
rtkit: /usr/lib/rtkit/rtkit-daemon

apt-cache search rtkit yields:
rtkit - Realtime Policy and Watchdog Daemon

Edit to address comment: I recommend htop because you can see other loaded modules not just the process name. If something launches in a funny way, the output of ps/process name may not show you something horribly useful.

Apt-file can find things that are named differently than the package name and aren't in the package description. It lets you track any file installed by a package back to the package.

userspace users can control it virtual filesystem not exactly a filesystem, but it acts like one - backends the part you don't see. If you check in htop, it talks over dbus(it shows in loaded modules). This makes me think it lets users manipulate filesystems/mounts/devices over dbus (a common way to grant super-user privileges without requiring sudo and using package-kit instead). So when you combine htop output, knowing a common use for dbus, and the description, it becomes a lot more clear.

Watchdog a process that monitors another to make sure it doesn't run out of control daemon something that runs as a service. So it's a process that monitors other processes to make sure scheduling doesn't get out of control.