Doncs en les últimes instal·lacions de la opensuse 10.x desinstalavem el que venia per defecte (syslog-ng) i posàvem el syslogd, canviàvem la configuració del fitxer /etc/syslogd.conf per a que redirigis els logs a on ens interesses, i ens trobàvem que res funcionava. No es generàvem logs i a més el syslogd s'arrancava però immediatament es posava en mode "defunct", fent un ps el podíem veure moribund:
# ps -ef| grep -i syslogd
root 9601 9600 0 11:50 ? 00:00:00 [syslogd]
El problema ara, estava en endevinar que podia passar, i dic endevinar perquè òbviament no tenia cap log on mirar per saber que podia estar passant.. Després de fer strace, de provar de canviar el syslog.conf i tot el que se'm podia acudir, vaig baixar a la consola i em vaig trobar amb uns "simpàtics" missatges que deien algo així com:
type=APPARMOR_DENIED msg=audit(1203504641.685:6): type=1503 operation="file_lock" requested_mask="k" denied_mask="k" name="/var/run/syslogd.pid" pid=9601 profile="/sbin/syslogd"
Així que aquí tenia al culpable, l'aplicació d'Apparmor que ve amb les últimes versions de OpenSuse activada, estava bloquejant que el syslog pogués arrancar correctament. Vaig parar el apparmor (/etc/init.d/boot.apparmor stop) i rearrancar el procés de syslogd, amb el que tot va començar a funcionar correctament. Se'm va passar per la ment la idea de deixar-ho així i seguir treballant en la instal.lació (que ja anem prou carregats de feina), però vaig seguir mirant de què anava el apparmor i perquè podia estar-me fent la punyeta d'aquesta manera.
El apparmor és un desenvolupament fet per Novell que limita el que poden fer els processos en una màquina linux, com per exemple a quin directori poden accedir, que poden fer amb tal fitxer (llegir, escriure,...) de manera molt més concreta del que es podia fer antigament amb els permisos d'execució per usuari. Si voleu més informació podeu llegir a la wikipedia, a l'entrada de l'apparmor.
Em sembla que per contra els de Red Hat utilitzen SELinux.
Bé, indagant una mica més trobo que la configuració del apparmor es troba al /etc/apparmor.d, on per cada un dels processos que es volen definir tenim un fitxer que descriu que poden o no poden fer. Pel syslogd hi ha el fitxer sbin.syslogd, on està la línia de marràs:
/var/run/syslogd.pid lrw,
Al final, trobo que els de OpenSuse tenen reconegut com un bug que el perfil definit pel syslogd a la instal.lació del apparmor està mal definit i aquesta línia deuria ser:
/var/run/syslogd.pid klrw
(com diu al error de la consola requested_mask="k")
Ho canvio i per fi, tot va bé amb apparmor inclòs. Unes quantes hores de feina perdudes per un detall de no res..