Hoy se me presento un caso con un Zimbra versión 7.2.0 FOSS, lo que ya es una versión antigua del aplicativo. Básicamente ocurría esto:
[zimbra@server]$ zmcontrol status
Host server.domain.com
antispam Running
antivirus Running
ldap Running
logger Running
mailbox Running
mta Running
snmp Running
spell Running
stats Running
zmconfigd Stopped
zmconfigd is not running.
[zimbra@server ]$
Cuando falla “zmconfigd” lo primero que debemos revisar es el registro “/opt/zimbra/log/zmconfigd.log”. Se observa el siguiente error:
edition.IOError: [Errno 2] File not found – /opt/zimbra/zimbramon/pylibs/conf$py.class (Permission denied)
En primera instancia lo que se te ocurre hacer es detener el aplicativo y correr:
/opt/zimbra/libexec/zmfixperms –verbose –extended
Lo cual es correcto, pero esto no solucionaría el problema en esta oportunidad, este caso requería mas investigación, revisamos el directorio mencionado en el registro:
ls -lrt /opt/zimbra/zimbramon/pylibs/
total 284
-rwxrwxrwx 1 root root 3157 Apr 10 2012 serverconfig.py
-rwxrwxrwx 1 root root 7688 Apr 10 2012 mtaconfig.py
-rwxrwxrwx 1 root root 1633 Apr 10 2012 miscconfig.py
-rwxrwxrwx 1 root root 2244 Apr 10 2012 logmsg.py
-rwxrwxrwx 1 root root 1412 Apr 10 2012 localconfig.py
-rwxrwxrwx 1 root root 1987 Apr 10 2012 listener.py
-rwxrwxrwx 1 root root 5939 Apr 10 2012 ldap.py
-rwxrwxrwx 1 root root 2495 Apr 10 2012 globalconfig.py
-rwxrwxrwx 1 root root 2773 Apr 10 2012 conf.py
-rwxrwxrwx 1 root root 1108 Apr 10 2012 config.py
-rwxrwxrwx 1 root root 10943 Apr 10 2012 commands.py
-rwxrwxrwx 1 root root 28129 Apr 10 2012 state.py
-rw-r—– 1 root root 9124 Aug 6 2012 conf$py.class
-rw-r—– 1 root root 68230 Aug 6 2012 state$py.class
-rw-r—– 1 root root 7899 Aug 6 2012 logmsg$py.class
-rw-r—– 1 root root 6858 Aug 6 2012 localconfig$py.class
-rw-r—– 1 root root 27770 Aug 6 2012 commands$py.class
-rw-r—– 1 root root 11152 Aug 6 2012 serverconfig$py.class
-rw-r—– 1 root root 6377 Aug 6 2012 miscconfig$py.class
-rw-r—– 1 root root 9641 Aug 6 2012 globalconfig$py.class
-rw-r—– 1 root root 6125 Aug 6 2012 config$py.class
-rw-r—– 1 root root 19980 Aug 6 2012 mtaconfig$py.class
-rw-r—– 1 root root 7693 Aug 6 2012 listener$py.class
Revisamos que tipo de archivo están en ese directorio, no queremos manipular algún binario o romper una dependencia:
file /opt/zimbra/zimbramon/pylibs/*
commands.py: ASCII English text
commands$py.class: writable, regular file, no read permission
config.py: ASCII English text
config$py.class: writable, regular file, no read permission
conf.py: ASCII English text
conf$py.class: writable, regular file, no read permission
globalconfig.py: ASCII English text
globalconfig$py.class: writable, regular file, no read permission
ldap.py: ASCII English text
listener.py: ASCII English text
listener$py.class: writable, regular file, no read permission
localconfig.py: ASCII English text
localconfig$py.class: writable, regular file, no read permission
logmsg.py: ASCII English text
logmsg$py.class: writable, regular file, no read permission
miscconfig.py: ASCII English text
miscconfig$py.class: writable, regular file, no read permission
mtaconfig.py: ASCII English text
mtaconfig$py.class: writable, regular file, no read permission
serverconfig.py: ASCII English text
serverconfig$py.class: writable, regular file, no read permission
state.py: ASCII English text
state$py.class: writable, regular file, no read permission
Archivos de texto, los últimos indican que no tienen permiso de lectura, supuestamente en el registro decía que no podía leer el archivo, que el archivo no existía. Pero esos archivos a simple vista se ven como temporales que se generan por los scripts en python almacenados en ese mismo directorio. La solución:
[root@server pylibs]# a=`ls | grep .class`
[root@server pylibs]# ls $a
commands$py.class globalconfig$py.class logmsg$py.class serverconfig$py.class
config$py.class listener$py.class miscconfig$py.class state$py.class
conf$py.class localconfig$py.class mtaconfig$py.class
[root@montana pylibs]# mkdir /root/bkplibs
[root@montana pylibs]# mv $a /root/bkplibs
/opt/zimbra/libexec/zmfixperms –verbose –extended
Ojo, recordemos que para ejecutar este procedimiento el aplicativo debe estar completamente apagado, una vez culminado levantamos el aplicativo y validamos con el siempre confiable:
[zimbra@server pylibs]$ zmcontrol status
Host server.netnovation.com
antispam Running
antivirus Running
ldap Running
logger Running
mailbox Running
mta Running
snmp Running
spell Running
stats Running
zmconfigd Running
[zimbra@server pylibs]$
Solucionado, espero les ayude. Nos vemos.
Buenas tardes amigo, tengo el siguiente error
zimbra@mail:~/log$ zmcontrol status
Host mail.cmldc.gob.ve
amavis Running
antispam Running
antivirus Running
ldap Running
logger Running
mailbox Running
mta Running
opendkim Running
service webapp Running
snmp Running
spell Running
stats Running
zimbra webapp Running
zimbraAdmin webapp Running
zimlet webapp Running
zmconfigd Stopped
zmconfigd is not running.
zimbra@mail:~/zimbramon/pylibs$ zmconfigdctl start
Starting zmconfigd…/opt/zimbra/bin/zmconfigdctl: line 82: kill: (13648) – No such process
failed.
A pesar de haber aplicado varias soluciones que he encontrado tal como esta no he podido levantar el servicio y me sale este error.
De antemano agradecida por la ayuda que me pueda brindar.
revisaste los logs? ese seria el error que arroja el script de arranque, revisa los logs y pega el error.
Can’t kill a non-numeric process ID at /opt/zimbra/bin/zmstatctl line 204.