Using strace against daemons
The strace
application not only makes sense for command-line applications but also for daemons. A popular approach to debugging daemons is to start them from the command line, possibly with a specific debug flag, so that the daemon doesn't detach and run in the background. However, this is often not possible on SELinux: the policy will not allow the daemon to run as a command-line foreground process.
How to do it…
The approach to use strace
against daemons is similar as with command lines, focusing on the process ID rather than the command:
Find out what the process ID of the daemon is:
~$ pidof postgres 2557
Use
strace
to attach to the running process:~$ strace -o strace.log -f -s 256 -p 2557
Specify which system calls to watch out for. For instance, permission issues while binding or connecting to ports or sockets can be filtered as follows:
~$ strace -e poll,select,connect,recvfrom,sendto -o strace.log -f -s 256 -p 2557
Press Ctrl + C to interrupt the
strace...