Useful Linux Troubleshooting Commands

04/15/2008

Software Not Working?

We often have to troubleshoot a customer's problem over the phone. We've summarized here a common set of commands who's output helps us figure out what is going on.


What Operating System and Version am I running?

This is important to know because there are many different Linux flavors and versions.

uname -a

Depending on your OS you will get a line that looks something like this:

Linux asmsc37 2.6.9-5.EL #1 Wed Jan 5 19:21:57 EST 2005 x86_64 x86_64 x86_64 GNU/Linux



What libraries does the program I just installed use?

A big problem with applications running on Linux distributions is missing libraries. If you get a error message concerning missing libraries, you should run the ldd command and send the output to Artwork's tech support.

For example, suppose you have just installed qkcvu3 and you run into a library problem. Just go to qkcvu3's bin directory and run ldd on qkcvu3.exe. i.e.

 ldd qckvu3.exe

        liblayerdlg64.so (0x0000002a95557000)
        liboaDM.so => not found
        liboaBase.so => not found
        liboaPlugIn.so => not found
        liboaTech.so => not found
        liboaDesign.so => not found
        liboaCommon.so => not found
        liboaRQXYTree.so => not found
        libXt.so.6 => /usr/X11R6/lib64/libXt.so.6 (0x0000003132100000)
        libX11.so.6 => /usr/X11R6/lib64/libX11.so.6 (0x000000312e600000)
        libXext.so.6 => /usr/X11R6/lib64/libXext.so.6 (0x000000312e800000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003135d00000)
        libSM.so.6 => /usr/X11R6/lib64/libSM.so.6 (0x000000312f000000)
        libICE.so.6 => /usr/X11R6/lib64/libICE.so.6 (0x000000312ee00000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003cb8200000)
        libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x000000312ec00000)
        libm.so.6 => /lib64/tls/libm.so.6 (0x000000312e200000)
        libc.so.6 => /lib64/tls/libc.so.6 (0x000000312df00000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003132900000)
        libdl.so.2 => /lib64/libdl.so.2 (0x000000312e400000)
        /lib64/ld-linux-x86-64.so.2 (0x000000312dd00000)

Not only does this show you all the libraries that qckvu3.exe links to, but it shows you where they are located on your system. And if any are not present you'll see a not found comment.




Floating License Server Environment Variable

If your software has been set up to use a floating license manager you need to have an environment variable, ARTWORK_LICENSE_FILE, that points to where the license file or license server is located. If this environment variable is not set, or if its value is incorrect then you won't get a license.

To check this I like to use the set command and pipe the results through grep. The set command lists (to standard output) all of the settings for you environment.

$  set | grep LM
ARTWORK_LICENSE_FILE=1701@blade1500

In this example, ARTWORK_LICENSE_FILE is defined and it tells our applications to request a license on port 1701 to a license server named blade1500.




What product/features is the license server authorizing?

Failure of an application to run due to licensing may be due to the fact that the license server does not have that application in its list of licensed products. Since the license server is generally on a different machine, you can' easily go looking into the license file. But you can use the lmstat utility that we generally ship with our applications.

To do this you first need to go to the directory where lmstat is located. Artwork normally includes a tools directory.