If I've installed an application both as a snap and via APT, how can I tell which one is currently running?

Solution 1:

Call each one separately

You can start a specific version of an application by providing the full path name of the executable. Firefox, e.g., installed using APT will be launched by /usr/bin/firefox. The executables of snap applications are under /snap/bin/ so /snap/bin/firefox will launch the snap version.

Typing firefox will launch the APT version, because /usr/bin is listed earlier in the search path than /snap/bin in a default Ubuntu install. The default PATH is:

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

When you simply type firefox, the system searches each of the consecutive directories (folders) until an executable with the name firefox is found. If the APT version is installed, it will find the executable in /usr/bin before searching /snap/bin, so the search will be stopped and that executable will be launched.

You can learn which executable will be launched with the command which.

$ which firefox
/usr/bin/firefox

You can learn which executables you have installed with the command whereis:

$ whereis firefox
firefox: /usr/bin/firefox /usr/lib/firefox /etc/firefox /snap/bin/firefox /usr/share/man/man1/firefox.1.gz

Here, both the APT and the snap version of firefox are installed.

Know which one is running

Running processes

The command ps ax lists all running processes. Thus:

ps ax | grep firefox

will list all processes with the name "firefox". The output includes the full pathname of the executable.

Creator of a specific window

It is also possible to identify the creator of a specific window, to learn whether the open window is from the APT or the snap version. However, this is rather complicated and not always reliable. See the Unix & Linux Stackexchange questions What process created this X11 window? and What process created this window with no PID associated?.

Solution 2:

Examples using gnome-calculator, which many folks have in both deb and snap formats:

  • How to call each one separately: Let's find full paths.

    $ which -a gnome-calculator     # -a keeps searching after the first hit
    /usr/bin/gnome-calculator
    /snap/bin/gnome-calculator
    
    $ whereis -b gnome-calculator   # -b returns binaries only
    gnome-calculator: /usr/bin/gnome-calculator /snap/bin/gnome-calculator
    
  • How to determine which one is running. In this example, BOTH are running. The difference is readily apparent.

    $ ps -x | grep gnome-calculator
    69445 ?        Sl     0:05 /snap/gnome-calculator/748/usr/bin/gnome-calculator
    69549 pts/0    Sl     0:01 gnome-calculator
    69727 pts/0    S+     0:00 grep --color=auto gnome-calculator
    
    $ pgrep -af gnome-calculator
    69445 /snap/gnome-calculator/748/usr/bin/gnome-calculator
    69549 gnome-calculator