syslog-ng 1.3.3 on FreeBSD 3-STABLE
There seems to be somthing wrong with the forking in the new version. It never goes deamon. Here are the truss lists from 1.3.1 and 1.3.4 resp. 1.3.1 ======================================= # truss /usr/local/sbin/syslog-ng syscall __sysctl(0xbfbfd9c8,0x2,0x2806518c,0xbfbfd9d0,0x0,0x0) returns 0 (0x0) syscall mmap(0x0,32768,0x3,0x1002,-1,0x0) returns 671506432 (0x28066000) syscall geteuid() returns 0 (0x0) syscall getuid() returns 0 (0x0) syscall getegid() returns 0 (0x0) syscall getgid() returns 0 (0x0) syscall open("/var/run/ld-elf.so.hints",0,05001446514) returns 3 (0x3) syscall read(0x3,0xbfbfd97c,0x80) returns 128 (0x80) syscall lseek(3,0x80,0) returns 128 (0x80) syscall read(0x3,0x2806a000,0x67) returns 103 (0x67) syscall close(3) returns 0 (0x0) syscall access("/usr/lib/libc.so.3",0) returns 0 (0x0) syscall open("/usr/lib/libc.so.3",0,05001446514) returns 3 (0x3) syscall read(0x3,0xbfbfc9f8,0x1000) returns 4096 (0x1000) syscall mmap(0x0,528384,0x5,0x2,3,0x0) returns 671539200 (0x2806e000) syscall mmap(0x280db000,20480,0x3,0x12,3,0x6c000) returns 671985664 (0x280db000) syscall mmap(0x280e0000,61440,0x3,0x1012,-1,0x0) returns 672006144 (0x280e0000) syscall close(3) returns 0 (0x0) syscall readlink("/etc/malloc.conf",0xbfbfd96c,63) errno 2 'No such file or directory' syscall mmap(0x0,4096,0x3,0x1002,-1,0x0) returns 672067584 (0x280ef000) syscall break(0x8059000) returns 0 (0x0) syscall break(0x805a000) returns 0 (0x0) syscall break(0x805b000) returns 0 (0x0) syscall open("/etc/syslog-ng/syslog-ng.conf",0,0666) returns 3 (0x3) syscall break(0x8060000) returns 0 (0x0) syscall ioctl(3,TIOCGETA,0xbfbfd484) errno 25 'Inappropriate ioctl for device' syscall fstat(3,0xbfbfd400) returns 0 (0x0) syscall break(0x8062000) returns 0 (0x0) syscall read(0x3,0x8060000,0x2000) returns 2523 (0x9db) syscall read(0x3,0x8060000,0x2000) returns 0 (0x0) syscall break(0x8063000) returns 0 (0x0) syscall break(0x8064000) returns 0 (0x0) syscall break(0x8065000) returns 0 (0x0) syscall break(0x8066000) returns 0 (0x0) syscall ioctl(3,TIOCGETA,0xbfbfd478) errno 25 'Inappropriate ioctl for device' syscall close(3) returns 0 (0x0) syscall fork() returns 498 (0x1f2) syscall sigaction(0xf,0xbfbfd9e8,0xbfbfd9dc) returns 0 (0x0) syscall sigprocmask(0x1,0x0) returns 0 (0x0) SIGNAL 15 SIGNAL 15 syscall sigaction(0xf,0xbfbfd948,0xbfbfd93c) returns 0 (0x0) syscall sigreturn(0xbfbfd980) returns 0 (0x0) ======================================= 1.3.4 ======================================= # truss src/syslog-ng syscall __sysctl(0xbfbfd9d4,0x2,0x2806618c,0xbfbfd9dc,0x0,0x0) returns 0 (0x0) syscall mmap(0x0,32768,0x3,0x1002,-1,0x0) returns 671510528 (0x28067000) syscall geteuid() returns 0 (0x0) syscall getuid() returns 0 (0x0) syscall getegid() returns 0 (0x0) syscall getgid() returns 0 (0x0) syscall open("/var/run/ld-elf.so.hints",0,05001456514) returns 3 (0x3) syscall read(0x3,0xbfbfd988,0x80) returns 128 (0x80) syscall lseek(3,0x80,0) returns 128 (0x80) syscall read(0x3,0x2806b000,0x67) returns 103 (0x67) syscall close(3) returns 0 (0x0) syscall access("/usr/lib/libc.so.3",0) returns 0 (0x0) syscall open("/usr/lib/libc.so.3",0,05001456514) returns 3 (0x3) syscall read(0x3,0xbfbfca04,0x1000) returns 4096 (0x1000) syscall mmap(0x0,528384,0x5,0x2,3,0x0) returns 671543296 (0x2806f000) syscall mmap(0x280dc000,20480,0x3,0x12,3,0x6c000) returns 671989760 (0x280dc000) syscall mmap(0x280e1000,61440,0x3,0x1012,-1,0x0) returns 672010240 (0x280e1000) syscall close(3) returns 0 (0x0) syscall readlink("/etc/malloc.conf",0xbfbfd974,63) errno 2 'No such file or directory' syscall mmap(0x0,4096,0x3,0x1002,-1,0x0) returns 672071680 (0x280f0000) syscall break(0x805a000) returns 0 (0x0) syscall break(0x805b000) returns 0 (0x0) syscall break(0x805c000) returns 0 (0x0) syscall break(0x805d000) returns 0 (0x0) syscall open("/etc/syslog-ng/syslog-ng.conf",0,0666) returns 3 (0x3) syscall break(0x8062000) returns 0 (0x0) syscall ioctl(3,TIOCGETA,0xbfbfd490) errno 25 'Inappropriate ioctl for device' syscall fstat(3,0xbfbfd40c) returns 0 (0x0) syscall break(0x8064000) returns 0 (0x0) syscall read(0x3,0x8062000,0x2000) returns 2523 (0x9db) syscall read(0x3,0x8062000,0x2000) returns 0 (0x0) syscall break(0x8065000) returns 0 (0x0) syscall break(0x8066000) returns 0 (0x0) syscall break(0x8067000) returns 0 (0x0) syscall break(0x8068000) returns 0 (0x0) syscall ioctl(3,TIOCGETA,0xbfbfd484) errno 25 'Inappropriate ioctl for device' syscall close(3) returns 0 (0x0) syscall fork() returns 808 (0x328) syscall sigaction(0xf,0xbfbfd9f4,0xbfbfd9e8) returns 0 (0x0) syscall sigprocmask(0x1,0x0) returns 0 (0x0) SIGNAL 20 ======================================= Any ideas or pointers where to look? Cheers, GLZ --- Goran Lowkrantz Email : goran.lowkrantz@infologigruppen.se Infologigruppen Alfa AB Telephone: Nat 070-587 8782 Fax: Nat 070-615 8782 Box 202 Int +46 70-587 8782 Int +46 70-615 8782 941 25 Pitea, Sweden
On Tue, Nov 23, 1999 at 07:56:38PM +0100, Lowkrantz, Goran wrote:
There seems to be somthing wrong with the forking in the new version. It never goes deamon.
Here are the truss lists from 1.3.1 and 1.3.4 resp.
I'm currently downloading FreeBSD, so I can test this. Under Linux it works o.k.
Any ideas or pointers where to look?
syslog-ng goes to background the following way: parent: read configuration if config syntactically correct then fork(); wait for SIGTERM signal child: initialize configuration (open sockets etc.) if successful; close fds 0, 1, 2, become a session leader, send SIGTERM signal to parent You can find all of this in main.c -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1 url: http://www.balabit.hu/pgpkey.txt
participants (2)
-
Balazs Scheidler
-
Lowkrantz, Goran