Hola, Antes que nada perdonad por si el asunto es un poco Off-topic, pero es que no sé cómo llevarlo a cabo y seguro que es una tontería... A ver si me podéis echar una manita. ;-) Tengo configurado Fetchmail para que se inice nada más se encienda el equipo, pero el problema es que Fetchmail se ejecuta antes de Postfix y Cyrus (los encargados del correo) y claro, al no encontrar Fetchmail el puerto 25 a la escucha, se produce un error en la entrega (deferred). Me gustaría poder decirle a Fetchmail que se ejecute después de Postfix y Cyrus, pero no sé cómo hacerlo. Espero que entendáis el asunto, se trata sólo de retrasar el inicio de esta aplicación para que espere a que Postfix esté disponible y escuchando en el puerto 25 para poder entregar el correo. He visto que los servicios de Inetd se pueden configurar con "nowait" o "wait", pero no he encontrado nada para los demonios normales de aplicaciones. Venga, saludos y gracias por adelantado. -- Camaleón
El Sábado, 22 de Noviembre de 2003 16:31, Camaleón escribió:
Hola,
Antes que nada perdonad por si el asunto es un poco Off-topic, pero es que no sé cómo llevarlo a cabo y seguro que es una tontería... A ver si me podéis echar una manita.
No creo que sea off-topic
;-)
Tengo configurado Fetchmail para que se inice nada más se encienda el equipo, pero el problema es que Fetchmail se ejecuta antes de Postfix y Cyrus (los encargados del correo) y claro, al no encontrar Fetchmail el puerto 25 a la escucha, se produce un error en la entrega (deferred).
Me gustaría poder decirle a Fetchmail que se ejecute después de Postfix y Cyrus, pero no sé cómo hacerlo. Espero que entendáis el asunto, se trata sólo de retrasar el inicio de esta aplicación para que espere a que Postfix esté disponible y escuchando en el puerto 25 para poder entregar el correo.
Los script de inicio se encuentran en /etc/init.d/, a ellos apuntan una serie de enlaces dispuestos en /etc/rcX.d/ o /etc/init.d/rcX.d/ dependiendo de la distribución. El numero X corresponde al runlevel al que hacen referencia, los del rc2.d se ejecutan en el runlevel 2 y los del rc5.d en el cinco. Dentro de estos directorios tienes enlaces simbólicos en la forma Snnaplicacion o Knnaplicacion, la S indica que al script se le pasa el parametro start en la ejecución y la K stop. El número nn indica el orden de ejecución, de esta forma el 00 será el primero y el 99 el último. Sabiendo esto lo único que has de hacer es modificar el nombre del enlace a fetchmail poniendo un número nn mayor que el de Postfix. Un ejemplo # mv /etc/init.d/rc5.d/S14fetchmail /etc/rc5.d/S99fetchmail
He visto que los servicios de Inetd se pueden configurar con "nowait" o "wait", pero no he encontrado nada para los demonios normales de aplicaciones.
Venga, saludos y gracias por adelantado.
-- Camaleón
El Sábado, 22 de Noviembre de 2003 18:54, Javier Payno escribió:
Los script de inicio se encuentran en /etc/init.d/, a ellos apuntan una serie de enlaces dispuestos en /etc/rcX.d/ o /etc/init.d/rcX.d/ dependiendo de la distribución. El numero X corresponde al runlevel al que hacen referencia, los del rc2.d se ejecutan en el runlevel 2 y los del rc5.d en el cinco. Dentro de estos directorios tienes enlaces simbólicos en la forma Snnaplicacion o Knnaplicacion, la S indica que al script se le pasa el parametro start en la ejecución y la K stop. El número nn indica el orden de ejecución, de esta forma el 00 será el primero y el 99 el último. Sabiendo esto lo único que has de hacer es modificar el nombre del enlace a fetchmail poniendo un número nn mayor que el de Postfix. Un ejemplo
# mv /etc/init.d/rc5.d/S14fetchmail /etc/rc5.d/S99fetchmail
Muchas gracias, lo acabo de cambiar ahora mismo. Como bien apuntabas, Fetchmail estaba en el S09 (el mismo que Cyrus) y Postfix estaba con uno superior S10, así que he puesto a fetchmail con el S12 y seguro que ahora ya no me retrasa los correos. Gracias de nuevo, por la solución y por la explicación. :-D -- Camaleón
El 2003-11-22 a las 18:54 +0100, Javier Payno escribió:
parametro start en la ejecución y la K stop. El número nn indica el orden de ejecución, de esta forma el 00 será el primero y el 99 el último. Sabiendo esto lo único que has de hacer es modificar el nombre del enlace a fetchmail poniendo un número nn mayor que el de Postfix. Un ejemplo
No. Al menos, en un SuSE, eso no se puede hacer, porque el Yast los borra y los pone como a él le da la gana - lease como corresponde ;-) Docus: man init.d Y en español en el manual de administración, capítulo "The SuSE Linux Boot Concept", que no se como lo habrán traducido (el de papel lo tengo prestado). La cabecera de los scripts de inicio (partiendo de la base de "/etc/init.d/skeleton") tiene algo parecido a esto: ### BEGIN INIT INFO # Provides: FOO # Required-Start: $syslog $remote_fs # X-UnitedLinux-Should-Start: $time ypbind sendmail # Required-Stop: $syslog $remote_fs # X-UnitedLinux-Should-Stop: $time ypbind sendmail # Default-Start: 3 5 # Default-Stop: 0 1 2 6 Bueno, pues la cosa consiste en poner en el "Required-Start" que requiere lo que proporciona el script de inicio del postfix: ### BEGIN INIT INFO # Provides: sendmail postfix # Required-Start: $network $named $syslog O sea, sendmail, postfix. A continuación, quitar y poner el script con innserv, o con Yast, o chkconfig. -- Saludos Carlos Robinson
El Lunes, 24 de Noviembre de 2003 12:24, Carlos E. R. escribió:
No.
Al menos, en un SuSE, eso no se puede hacer, porque el Yast los borra y los pone como a él le da la gana - lease como corresponde ;-)
Docus:
man init.d
Y en español en el manual de administración, capítulo "The SuSE Linux Boot Concept", que no se como lo habrán traducido (el de papel lo tengo prestado).
La cabecera de los scripts de inicio (partiendo de la base de "/etc/init.d/skeleton") tiene algo parecido a esto:
### BEGIN INIT INFO # Provides: FOO # Required-Start: $syslog $remote_fs # X-UnitedLinux-Should-Start: $time ypbind sendmail # Required-Stop: $syslog $remote_fs # X-UnitedLinux-Should-Stop: $time ypbind sendmail # Default-Start: 3 5 # Default-Stop: 0 1 2 6
Bueno, pues la cosa consiste en poner en el "Required-Start" que requiere lo que proporciona el script de inicio del postfix:
### BEGIN INIT INFO # Provides: sendmail postfix # Required-Start: $network $named $syslog
O sea, sendmail, postfix. A continuación, quitar y poner el script con innserv, o con Yast, o chkconfig.
-- Saludos Carlos Robinson
Hola, Entonces, y para resumir, ¿qué hay que hacer? Si no he entendido mal, modifico el script de fetchmail y pongo lo siguiente (el objetivo era conseguir que Fetchmail esperase a que Postfix y Cyrus estuvieran iniciados): ### BEGIN INIT INFO # Provides: fetchmail # Required-Start: $network $postfix $cyrus Y ¿cómo lo quito y lo pongo con insserv? ¿Para quitarlo sería?: insserv -r fetchmail ¿Para añadirlo?: insserv fetchmail ¿? Saludos... -- Camaleón
El 2003-11-24 a las 15:10 +0100, Camaleón escribió:
Entonces, y para resumir, ¿qué hay que hacer? Si no he entendido mal, modifico el script de fetchmail y pongo lo siguiente (el objetivo era conseguir que Fetchmail esperase a que Postfix y Cyrus estuvieran iniciados):
### BEGIN INIT INFO # Provides: fetchmail # Required-Start: $network $postfix $cyrus
Exacto - aunque personalmente no lo puedo comprobar porque no tengo ese script.
Y ¿cómo lo quito y lo pongo con insserv?
¿Para quitarlo sería?: insserv -r fetchmail ¿Para añadirlo?: insserv fetchmail
insserv --default fetchmail O mejor, chkconfig (man chkconfig). Incluso con el yast también puedes ponerlo. -- Saludos Carlos Robinson
participants (3)
-
Camaleón
-
Carlos E. R.
-
Javier Payno