NOTE: This blog assumes that your Linux system utilizes systemd as your system and service manager. Also, this blog assumes you’re SSH’ed into a Linux system from a separate client machine.
In contrast to its Windows counterpart, Linux users often spend their time in a terminal. Within ArcGIS Enterprise, many tools come with the capability to run silently or through a UI. For Linux users, there are times where the UI option is preferred, but what if you’re in a headless environment?
In this Monthly Linux Tip, we will look at how we can configure our Linux systems to view ArcGIS Enterprise tools using a UI within a headless environment. The table of contents below breaks down today’s blog:
- Headless or GUI-based environment?
- Understanding systemctl get-default
- Exporting the DISPLAY environment variable
- Running the desired tool
1. Headless or GUI-based environment?
The first point to start from is understanding the machine in which you’re working in; headless or GUI? “Headless Linux” is a term meant to describe a Linux system with no monitor or keyboard. Often, VMs have this configuration, unless customized to have GUI elements.
If you are within a GUI-based environment, then you have the flexibility to use both the terminal and GUI.
2. Understand systemctl get-default
In a nutshell, Linux environment have what are known as target units. These units allow a system to start services required for a specific purpose. To find the default target unit your machine has, run the command systemctl get-default:
It will differ machine to machine, but usually you will see graphical.target or multi-user.target. Assuming that you are in an SSH session from a client machine, the result does not matter too much. However, you can always modify your system to have your preferred default target unit if you choose to do so.
3. Exporting the DISPLAY environment variable
Let’s imagine you’re working on a separate client machine and you’re SSH’ed into your Linux machine. In this scenario, the DISPLAY environment variable will be our friend to accomplish our goal. All we will need to do is the following command: export DISPLAY=<IP address of your client machine>:0.0. An example is provided below:
The above export of the DISPLAY variable means that this will only last for the SSH session. This can be permanently configured in the .bashrc file, but that is not covered in this blog.
4. Running the desired tool
After we set the DISPLAY variable, we should be able to run any ArcGIS Enterprise tool. For example, let’s try the authorizeSoftware tool:
As seen, the UI for the tool now pops up! Similary, we should now be able to apply this same idea to other ArcGIS Enterprise tools.
In this blog, we covered how to set up our system to view ArcGIS Enterprise tools in a UI. Please let me know what you would like to see more of in the comments. As always, thank you for reading this Monthly Linux Tip!