Your At daemon is probably not running.
If all is well, you should have a file called /etc/init.d/atd to run the At service (daemon).
This means you can use:
/sbin/service atd status
to check it's status (see if it's running or not)
/sbin/service atd start
to start it. Likewise using "stop" to stop it or "restart" to restart it.
/sbin/chkconfig --list
gives a list of all services and the runlevels for which they're supposed to start automatically.
If you want to have atd started after each reboot, you should look at:
man chkconfig
(man page for /sbin/chkconfig)
man init
for more information on the different runlevels of your system.
For instance, a command like
/sbin/chkconfig --levels 345 atd on
starts the "atd" service (at daemon) when your system enters runlevels 3, 4 or 5 (typically the multi-user runlevels - ie the runlevels you enter after a normal boot).
man atd
man at
will of course give you info on the "at" program and it's background daemon "atd".
"at" is used to make certain commands run at a fixed time in the future. It's a bit like cron, but cron schedules tasks repetitively, ie it makes programs run each day, each week, every Tuesday, and stuff like that.
"at" on the other hands makes the program run just once at a given time. You can for instance use it to make
your program run tomorrow at 2am, so you don't have to wake up to run it
atd.pid is the PID-file (PID stands for Process ID) for the "at" daemon (atd). A PID-file simply said stores the PID (the process number under which atd is running). If the file is missing, this typically indicates that atd isn't running. If it is running, it should store it's PID in the atd.pid file.