The /proc directory which provides a text-based way of interfacing with system settings and processes looks complicated at first glance, but it can be incredibly helpful when troubleshooting. Try out these tips for looking at processes:
ls /proc will show you a long list of directories. These are your processes, one directory per process ID. Have a look at your process list (using ps -A), and pick a process. The one I'll look at is
1787 ? 00:00:00 thunderbird
Look at the contents of that directory. The file cmdline tells you what command was used to launch this process. This can be useful if the problem you have is launch-related. You'll be warned that this might be binary, but it's mostly text and easy to read. environ, similarly, gives you the command environment, which is also useful for troubleshooting (try starting the process on another machine and comparing the files); and the fd directory allows you to check what the process is accessing.
maps shows the memory maps to executables and library files. For each executable or library, the memory address is given, together with the permissions (r/w/x, s(hared), and p(rivate - copy on write)), the offset into the file, and the device and device inode. For my Thunderbird process, it starts like this:
08048000-080e9000 r-xp 00000000 03:01 2354694 /bin/bash 080e9000-080ef000 rw-p 000a0000 03:01 2354694 /bin/bash 080ef000-08183000 rw-p 080ef000 00:00 0 [heap]
For further information, the proc manpage is incredibly comprehensive and well worth a look.
This article was first published on ServerWatch.com.