# Clam daemon
Keywords: clamdoc

##
Clam daemon

clamd is a multi-threaded daemon and uses libclamav to scan files against viruses. It may work in one of the two following network modes, listening on a:

- Unix (local) socket
- TCP socket

The daemon is fully configurable via the clamav.conf file. You will find a description for every directive in the clamav.conf(5) manual. clamd recognizes the following commands:

- PING
  Check a daemon state (should reply with "PONG").
- VERSION
  Print version information.
- RELOAD
  Reload databases.
- SHUTDOWN
  Perform a clean exit.
- SCAN file/directory Scan a file or directory (recursively) with archive support enabled. A full path is required.
- RAWSCAN file/directory Scan a file or directory (recursively) with archive support disabled. A full path is required.
- CONTSCAN file/directory Scan a file or directory (recursively) with archive support enabled and don't stop even if virus is found.
- STREAM Scan stream - clamd will return a new port number you should connect to and send a data to scan. The protocol is obsolete and there will be a new version soon (however this one will still be supported).
- SESSION, END Start/end a clamd session - you can do multiple commands per TCP session (WARNING: due to the clamd implementation the RELOAD command will break the session).

Clamd reacts on the three special signals:

- SIGTERM - perform a clean exit
- SIGHUP - reopen the log file
- SIGUSR2 - reload the database