# svcs -a |egrep "maintenance"
maintenance 10:04:33 svc:/application/font/fc-cache:default
# svcs -l svc:/application/font/fc-cache:default
fmri svc:/application/font/fc-cache:default
name FontConfig Cache Builder
enabled true
state maintenance
next_state none
state_time Wed Aug 16 10:04:33 2006
logfile /var/svc/log/application-font-fc-cache:default.log
restarter svc:/system/svc/restarter:default
dependency require_all/none svc:/system/filesystem/local (online)
dependency require_all/refresh file://localhost/etc/fonts/fonts.conf (online)
dependency require_all/none file://localhost/usr/bin/fc-cache (online)
# cat /var/svc/log/application-font-fc-cache:default.log
[ May 27 02:12:25 Leaving maintenance because disable requested. ]
[ May 27 02:12:26 Disabled. ]
[ May 27 03:21:55 Executing start method ("/usr/bin/fc-cache") ]
[ May 27 03:21:56 Method "start" failed due to signal ILL ]
[ May 27 03:21:56 Executing start method ("/usr/bin/fc-cache") ]
[ May 27 03:21:57 Method "start" failed due to signal ILL ]
[ May 27 03:21:57 Executing start method ("/usr/bin/fc-cache") ]
[ May 27 03:21:57 Method "start" failed due to signal ILL ]
[ Aug 16 12:04:24 Leaving maintenance because disable requested. ]
[ Aug 16 12:04:24 Disabled. ]
[ Aug 16 12:04:32 Enabled. ]
[ Aug 16 12:04:33 Executing start method ("/usr/bin/fc-cache") ]
[ Aug 16 12:04:33 Method "start" failed due to signal ILL ]
- Verificar el XML de arranue para el servicio fc-cache
# svccfg export fc-cache
<?xml version='1.0'?>
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<service_bundle type='manifest' name='export'>
<service name='application/font/fc-cache' type='service' version='0'>
<create_default_instance enabled='true'/>
<single_instance/>
<dependency name='usr' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/system/filesystem/local'/>
</dependency>
<dependency name='config-file' grouping='require_all' restart_on='refresh' type='path'>
<service_fmri value='file://localhost/etc/fonts/fonts.conf'/>
</dependency>
<dependency name='fc-cache' grouping='require_all' restart_on='none' type='path'>
<service_fmri value='file://localhost/usr/bin/fc-cache'/>
</dependency>
<exec_method name='start' type='method' exec='/usr/bin/fc-cache' timeout_seconds='3600'>
<method_context>
<method_credential user='root' group='root'/>
</method_context>
</exec_method>
<property_group name='general' type='framework'>
<propval name='action_authorization' type='astring' value='solaris.smf.manage.font'/>
</property_group>
<property_group name='startd' type='framework'>
<propval name='duration' type='astring' value='transient'/>
</property_group>
<stability value='Evolving'/>
<template>
<common_name>
<loctext xml:lang='C'>FontConfig Cache Builder</loctext>
</common_name>
<documentation>
<manpage title='fc-cache' section='1M' manpath='/usr/share/man'/>
</documentation>
</template>
</service>
</service_bundle>
NOTA: Del metodo START rescatamos la manera de arrancar el servicio "/usr/bin/fc-cache" man fc-cache para ver que hacen las opciones (f, v)
- Intentar iniciar el servicio manualmente
# truss -f fc-cache -f -v
16071: execve("/usr/bin/fc-cache", 0xFFBFFBF4, 0xFFBFFC04) argc = 3
16071: resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
16071: resolvepath("/usr/bin/fc-cache", "/usr/bin/fc-cache", 1023) = 17
16071: stat("/usr/bin/fc-cache", 0xFFBFF9D0) = 0
16071: open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
16071: stat("/usr/openwin/lib/libfontconfig.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/sfw/lib/libfontconfig.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/lib/libfontconfig.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/lib/libfontconfig.so.1", 0xFFBFF4F0) = 0
16071: resolvepath("/usr/lib/libfontconfig.so.1", "/usr/lib/libfontconfig.so.1", 1023) = 27
16071: open("/usr/lib/libfontconfig.so.1", O_RDONLY) = 3
16071: mmap(0x00010000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFF3A0000
16071: mmap(0x00010000, 294912, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF350000
16071: mmap(0xFF350000, 208114, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFF350000
16071: mmap(0xFF392000, 20152, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 204800) = 0xFF392000
16071: munmap(0xFF384000, 57344) = 0
16071: memcntl(0xFF350000, 40048, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
16071: close(3) = 0
16071: stat("/usr/openwin/lib/libfreetype.so.6", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/sfw/lib/libfreetype.so.6", 0xFFBFF4F0) = 0
16071: resolvepath("/usr/sfw/lib/libfreetype.so.6", "/usr/sfw/lib/libfreetype.so.6", 1023) = 29
16071: open("/usr/sfw/lib/libfreetype.so.6", O_RDONLY) = 3
16071: mmap(0xFF3A0000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3A0000
16071: mmap(0x00010000, 720896, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF280000
16071: mmap(0xFF280000, 619289, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFF280000
16071: mmap(0xFF326000, 36599, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 614400) = 0xFF326000
16071: munmap(0xFF318000, 57344) = 0
16071: memcntl(0xFF280000, 80724, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
16071: close(3) = 0
16071: stat("/usr/openwin/lib/libz.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/sfw/lib/libz.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/lib/libz.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/lib/libz.so.1", 0xFFBFF4F0) = 0
16071: resolvepath("/usr/lib/libz.so.1", "/usr/lib/libz.so.1", 1023) = 18
16071: open("/usr/lib/libz.so.1", O_RDONLY) = 3
16071: mmap(0xFF3A0000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3A0000
16071: mmap(0x00010000, 122880, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF250000
16071: mmap(0xFF250000, 46234, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFF250000
16071: mmap(0xFF26A000, 11460, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 40960) = 0xFF26A000
16071: munmap(0xFF25C000, 57344) = 0
16071: memcntl(0xFF250000, 4164, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
16071: close(3) = 0
16071: stat("/usr/openwin/lib/libexpat.so.0", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/sfw/lib/libexpat.so.0", 0xFFBFF4F0) = 0
16071: resolvepath("/usr/sfw/lib/libexpat.so.0", "/usr/sfw/lib/libexpat.so.0.5.0", 1023) = 30
16071: mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF340000
16071: open("/usr/sfw/lib/libexpat.so.0", O_RDONLY) = 3
16071: mmap(0xFF3A0000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3A0000
16071: mmap(0x00010000, 344064, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF1F0000
16071: mmap(0xFF1F0000, 265082, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFF1F0000
16071: mmap(0xFF240000, 9380, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 262144) = 0xFF240000
16071: munmap(0xFF232000, 57344) = 0
16071: memcntl(0xFF1F0000, 36064, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
16071: close(3) = 0
16071: stat("/usr/openwin/lib/libc.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/sfw/lib/libc.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/lib/libc.so.1", 0xFFBFF4F0) = 0
16071: resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
16071: open("/lib/libc.so.1", O_RDONLY) = 3
16071: mmap(0xFF3A0000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3A0000
16071: mmap(0x00010000, 991232, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF080000
16071: mmap(0xFF080000, 881573, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFF080000
16071: mmap(0xFF168000, 29469, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 884736) = 0xFF168000
16071: mmap(0xFF170000, 2592, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFF170000
16071: munmap(0xFF158000, 65536) = 0
16071: memcntl(0xFF080000, 139692, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
16071: close(3) = 0
16071: stat("/usr/openwin/lib/libfreetype.so.6", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/openwin/lib/libz.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/sfw/lib/libz.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/lib/libz.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/openwin/lib/libexpat.so.0", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/openwin/lib/libc.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/sfw/lib/libc.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/openwin/lib/libz.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/lib/libz.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/openwin/lib/libc.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/openwin/lib/libc.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: stat("/usr/openwin/lib/libc.so.1", 0xFFBFF4F0) Err#2 ENOENT
16071: munmap(0xFF3A0000, 8192) = 0
16071: mmap(0x00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF1E0000
16071: getcontext(0xFFBFF6C8)
16071: getrlimit(RLIMIT_STACK, 0xFFBFF6A8) = 0
16071: getpid() = 16071 [16059]
16071: setustack(0xFF1E2088)
16071: brk(0x00030150) = 0
16071: brk(0x00032150) = 0
16071: time() = 1155724269
16071: stat("/platform/SUNW,Sun-Fire-15000/lib/libc_psr.so.1", 0xFFBFF250) = 0
16071: resolvepath("/platform/SUNW,Sun-Fire-15000/lib/libc_psr.so.1", "/platform/sun4u-us3/lib/libc_psr.so.1", 1023) = 37
16071: open("/platform/SUNW,Sun-Fire-15000/lib/libc_psr.so.1", O_RDONLY) = 3
16071: mmap(0x00010000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFF3A0000
16071: close(3) = 0
16071: access("/etc/fonts/fonts.conf", R_OK) = 0
16071: open("/etc/fonts/fonts.conf", O_RDONLY) = 3
16071: brk(0x00032150) = 0
16071: brk(0x00034150) = 0
16071: fstat64(3, 0xFFBFF748) = 0
16071: brk(0x00034150) = 0
16071: brk(0x00036150) = 0
16071: fstat64(3, 0xFFBFF5F0) = 0
16071: ioctl(3, TCGETA, 0xFFBFF6D4) Err#25 ENOTTY
16071: read(3, " < ? x m l v e r s i o".., 8192) = 8192
16071: brk(0x00036150) = 0
16071: brk(0x00038150) = 0
16071: brk(0x00038150) = 0
16071: brk(0x0003A150) = 0
16071: Incurred fault #1, FLTILL %pc = 0xFF378070
16071: siginfo: SIGILL ILL_ILLOPC addr=0xFF378070
16071: Received signal #4, SIGILL [default]
16071: siginfo: SIGILL ILL_ILLOPC addr=0xFF378070
- Verificar en que paquetes de instalacion esta el binario
# grep fc-cache /var/sadm/install/contents
/usr/bin/fc-cache f none 0755 root bin 22848 33575 1106442938 SUNWfontconfig
/usr/share/man/man1/fc-cache.1 f none 0444 root bin 2818 38724 1103170401 SUNWfontconfig-docs
/var/svc/manifest/application/font/fc-cache.xml f manifest 0444 root sys 1914 27439 1112898868 SUNWfontconfig-root
- Verificar el / los paquetes de instalacion
# pkgchk SUNWfontconfig
ERROR: /usr/lib/libfontconfig.so.1
file cksum <23257> expected <22647> actual
- Verificar si existe corrupcion en el binario mediante MD5
- Ejemplo con corrupcion de binario:
# digest -a md5 /usr/lib/libfontconfig.so.1
8b48394ea6b905892d611c80421b0c74
Results of Last Search
8b48394ea6b905892d611c80421b0c74 - - 0 match(es)
Not found in this database.
- Ejemplo sin corrupcion de binario:
# digest -a md5 /usr/lib/libfontconfig.so.1
0bbdd5e502292616707ccea25ff4e2b8
# Comprobar el resultado en
http://sunsolve.sun.com/pub-cgi/fileFingerprints.pl
Results of Last Search
0bbdd5e502292616707ccea25ff4e2b8 - - 1 match(es)
* canonical-path: /usr/lib/libfontconfig.so.1
* package: SUNWfontconfig
* version: 6.6.2.7400,REV=0.2004.12.15
* architecture: sparc
* source: Solaris 10/SPARC
- Verificar el nivel de parcheo para el paquete en cuestion
# showrev -p|grep SUNWfontconfig
Patch: 119065-01 Obsoletes: Requires: Incompatibles: Packages: SUNWfontconfig-root
- Detener el servicio
# svcadm disable svc:/application/font/fc-cache:default
- Remplazo del binario corrupto por el de otro equipo con las mismas caracteristicas y nivel de parcheo
# scp root@HOSTOK:/usr/lib/libfontconfig.so.1 root@HOSTBAD:/usr/lib/libfontconfig.so.1
- Verificar el checksum
# digest -a md5 /usr/lib/libfontconfig.so.1
0bbdd5e502292616707ccea25ff4e2b8
- Arrancar el servicio y verificar su funcionamiento
# svcadm enable svc:/application/font/fc-cache:default
# svcs -a |egrep "fc-cache"
online 13:18:24 svc:/application/font/fc-cache:default
No hay comentarios:
Publicar un comentario