19.1. Ejecución de Exim

Para ejecutar Exim, primero debe decidir si quiere que gestione los mensajes por SMTP entrantes ejecutándose como un demonio separado, o si quiere que inetd se encargue del puerto SMTP invocando a Exim sólo cuando se solicite una conexión SMTP desde el cliente. Normalmente preferirá que funcione como demonio porque eso cargará menos el anfitrión que iniciar Exim una y otra vez en cada conexión. Como el servidor de correo traslada la mayoría del correo entrante directamente a los usuarios, debería encargarle la gestión a inetd en la mayoría del resto de anfitriones.

Sea cual sea el modo de funcionamiento para cada anfitrión, tiene que asegurarse de tener la siguiente entrada en su fichero /etc/services:
    smtp            25/tcp          # Simple Mail Transfer Protocol

Esto define el número del puerto TCP que se usará en las comunicaciones SMTP. El puerto 25 es el estándar definido por el RFC de “Números Asignados” (RFC-1700).

Cuando se ejecuta como demonio, Exim se coloca en segundo plano y espera conexiones por el puerto SMTP. Cuando se da una conexión se bifurca y el proceso hijo lleva a cabo una conversación SMTP con el proceso compañero del anfitrión que llama. El demonio Exim se inicia normalmente invocándolo desde el guión rc durante el arranque por medio de la siguiente orden:
    /usr/sbin/exim -bd -q15m

La opción –bd activa el modo demonio y –q15m hace que procese los mensajes que se hayan acumulado en la cola durante los últimos quince minutos.

Si quiere usar inetd su fichero /etc/inetd.conf debería contener una línea como ésta:
    smtp    stream  tcp nowait  root  /usr/sbin/exim  in.exim -bs

Recuerde que tiene que hacer que inetd relea inetd.conf enviándole una señal HUP tras realizar cualquier cambio.[1]

Los modos demonio e inetd se excluyen mutuamente. Si ejecuta Exim como demonio, debería asegurarse de descomentar cualquier línea de inetd.conf para el servicio smtp. De manera equivalente, cuando inetd se encargue de Exim, asegúrese de que ningún guión rc inicie el demonio Exim.

Puede comprobar si Exim está instalado correctamente para recibir mensajes SMTP entrantes conectándose por telnet al puerto SMTP de su anfitrión. Una conexión con éxito al servidor SMTP sería algo así como esto:
    $ telnet localhost smtp
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    220 richard.vbrew.com ESMTP Exim 3.13 #1 Sun, 30 Jan 2000 16:23:55 +0600
    quit
    221 richard.brew.com closing connection
    Connection closed by foreign host.

Si esta prueba no genera la leyenda del SMTP (la línea que comienza con el código 220), compruebe si está ejecutando un demonio Exim o si inetd está configurado correctamente. Si eso no lo resuelve mire en los ficheros de bitácora de Exim (que se describen a continuación) en caso de que haya algún error en el fichero de configuración de Exim.

Notas

[1]

Use kill HUP pid, siendo pid el ID del proceso que inetd obtiene a partir de un listado de ps.