Re: How to debug why a service doesn't want to start.
"Charles M. Gerungan" <[email protected]>
| Newsgroups | gmane.comp.misc.pape.general |
|---|---|
| Message-ID | <[email protected]> |
On 11-jun-2006, at 0:21, Lukas Beeler wrote:
> Try attaching truss to the runsv monitoring this service (with an
> option to follow forks). This should give you an overview of
> system calls called by the script.
Well, it isn't obvious to me :(.
Could you point me to the line that should explain it to me? I'd love
to find out how to read this.
# ps wwaux |g runsv |g wwwadmin
root 28244 0.0 0.1 1204 596 ?? Ss 12:00AM 0:01.64
runsv wwwadmin
# truss -faep 28244
33570: execve("./run", [ "./run" ], [ "PATH=/command:/usr/local/bin:/
usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin" ])
28244: open("supervise/status.new",0x605,0644) = 15 (0xf)
28244: write(15,0xbfbfebf0,20) = 20 (0x14)
33570: mmap(0x0,3920,(0x3)PROT_READ|PROT_WRITE,(0x1000)
MAP_ANON,-1,0x0) = 671637504 (0x28086000)
28244: close(15) = 0 (0x0)
33570: munmap(0x28086000,0xf50) = 0 (0x0)
28244: rename(0x804b311,0x804b32a) = 0 (0x0)
33570: __sysctl(0xbfbfec44,0x2,0x28082c58,0xbfbfec40,0x0,0x0) = 0 (0x0)
28244: gettimeofday({1149979428 533858},0x0) = 0 (0x0)
33570: mmap(0x0,32768,(0x3)PROT_READ|PROT_WRITE,(0x1002)MAP_ANON|
MAP_PRIVATE,-1,0x0) = 671637504 (0x28086000)
28244: sigprocmask(0x2,0xbfbfec40,0x0) = 0 (0x0)
33570: issetugid() = 0 (0x0)
28244: sigprocmask(0x2,0xbfbfec40,0x0) = 0 (0x0)
33570: open("/etc/libmap.conf",0x0,0666) ERR#2 'No such file
or directory'
33570: open("/var/run/ld-elf.so.hints",0x0,00) = 3 (0x3)
33570: read(0x3,0xbfbfecec,0x80) = 128 (0x80)
33570: lseek(3,0x80,SEEK_SET) = 128 (0x80)
33570: read(0x3,0x28088100,0x83) = 131 (0x83)
33570: close(3) = 0 (0x0)
33570: access("/lib/libedit.so.4",0) = 0 (0x0)
33570: open("/lib/libedit.so.4",0x0,00) = 3 (0x3)
33570: fstat(3,0xbfbfed3c) = 0 (0x0)
33570: read(0x3,0x28081ba0,0x1000) = 4096 (0x1000)
33570: mmap(0x0,77824,(0x5)PROT_READ|PROT_EXEC,(0x20002)MAP_NOCORE|
MAP_PRIVATE,3,0x0) = 671670272 (0x2808e000)
33570: mprotect(0x2809f000,4096,(0x7)PROT_READ|PROT_WRITE|PROT_EXEC)
= 0 (0x0)
33570: mprotect(0x2809f000,4096,(0x5)PROT_READ|PROT_EXEC) = 0 (0x0)
33570: mmap(0x280a0000,4096,(0x3)PROT_READ|PROT_WRITE,(0x12)MAP_FIXED|
MAP_PRIVATE,3,0x12000) = 671744000 (0x280a0000)
33570: close(3) = 0 (0x0)
33570: access("/lib/libncurses.so.5",0) = 0 (0x0)
33570: open("/lib/libncurses.so.5",0x0,027757766474) = 3 (0x3)
33570: fstat(3,0xbfbfed3c) = 0 (0x0)
33570: read(0x3,0x28081ba0,0x1000) = 4096 (0x1000)
33570: mmap(0x0,258048,(0x5)PROT_READ|PROT_EXEC,(0x20002)MAP_NOCORE|
MAP_PRIVATE,3,0x0) = 671748096 (0x280a1000)
33570: mprotect(0x280d6000,4096,(0x7)PROT_READ|PROT_WRITE|PROT_EXEC)
= 0 (0x0)
33570: mprotect(0x280d6000,4096,(0x5)PROT_READ|PROT_EXEC) = 0 (0x0)
33570: mmap(0x280d7000,32768,(0x3)PROT_READ|PROT_WRITE,(0x12)
MAP_FIXED|MAP_PRIVATE,3,0x36000) = 671969280 (0x280d7000)
33570: mmap(0x280df000,4096,(0x3)PROT_READ|PROT_WRITE,(0x1012)
MAP_ANON|MAP_FIXED|MAP_PRIVATE,-1,0x0) = 672002048 (0x280df000)
33570: close(3) = 0 (0x0)
33570: access("/lib/libc.so.5",0) = 0 (0x0)
33570: open("/lib/libc.so.5",0x0,027757766474) = 3 (0x3)
33570: fstat(3,0xbfbfed3c) = 0 (0x0)
33570: read(0x3,0x28081ba0,0x1000) = 4096 (0x1000)
33570: mmap(0x0,892928,(0x5)PROT_READ|PROT_EXEC,(0x20002)MAP_NOCORE|
MAP_PRIVATE,3,0x0) = 672006144 (0x280e0000)
33570: mprotect(0x281a0000,4096,(0x7)PROT_READ|PROT_WRITE|PROT_EXEC)
= 0 (0x0)
33570: mprotect(0x281a0000,4096,(0x5)PROT_READ|PROT_EXEC) = 0 (0x0)
33570: mmap(0x281a1000,20480,(0x3)PROT_READ|PROT_WRITE,(0x12)
MAP_FIXED|MAP_PRIVATE,3,0xc0000) = 672796672 (0x281a1000)
33570: mmap(0x281a6000,81920,(0x3)PROT_READ|PROT_WRITE,(0x1012)
MAP_ANON|MAP_FIXED|MAP_PRIVATE,-1,0x0) = 672817152 (0x281a6000)
33570: close(3) = 0 (0x0)
33570: access("/lib/libncurses.so.5",0) = 0 (0x0)
33570: mmap(0x0,1072,(0x3)PROT_READ|PROT_WRITE,(0x1000)
MAP_ANON,-1,0x0) = 672899072 (0x281ba000)
33570: munmap(0x281ba000,0x430) = 0 (0x0)
33570: mmap(0x0,928,(0x3)PROT_READ|PROT_WRITE,(0x1000)
MAP_ANON,-1,0x0) = 672899072 (0x281ba000)
33570: munmap(0x281ba000,0x3a0) = 0 (0x0)
33570: mmap(0x0,4616,(0x3)PROT_READ|PROT_WRITE,(0x1000)
MAP_ANON,-1,0x0) = 672899072 (0x281ba000)
33570: munmap(0x281ba000,0x1208) = 0 (0x0)
33570: mprotect(0x280e0000,790528,(0x7)PROT_READ|PROT_WRITE|
PROT_EXEC) = 0 (0x0)
33570: mmap(0x0,22024,(0x3)PROT_READ|PROT_WRITE,(0x1000)
MAP_ANON,-1,0x0) = 672899072 (0x281ba000)
33570: munmap(0x281ba000,0x5608) = 0 (0x0)
33570: mprotect(0x280e0000,790528,(0x5)PROT_READ|PROT_EXEC) = 0 (0x0)
33570: sigaction(SIGILL,{ 0x28069b0c 0x0|ONSTACK|RESTART|RESETHAND|
NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t },{ SIG_DFL 0x0|ONSTACK|
RESTART|RESETHAND|NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t }) = 0 (0x0)
33570: sigprocmask(0x1,0x0,0x28081afc) = 0 (0x0)
33570: sigaction(SIGILL,{ SIG_DFL 0x0|ONSTACK|RESTART|RESETHAND|
NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t },0x0) = 0 (0x0)
33570: sysarch(0x1,0xbfbfed9c) = 17 (0x11)
33570: sigprocmask(0x1,0x28081aa0,0xbfbfed9c) = 0 (0x0)
33570: sigprocmask(0x3,0x28081ab0,0x0) = 0 (0x0)
33570: getpid() = 33570 (0x8322)
33570: geteuid() = 0 (0x0)
33570: getppid() = 28244 (0x6e54)
33570: readlink("/etc/malloc.conf",0xbfbfe970,63) ERR#2 'No such file
or directory'
33570: issetugid() = 0 (0x0)
33570: mmap(0x0,4096,(0x3)PROT_READ|PROT_WRITE,(0x1002)MAP_ANON|
MAP_PRIVATE,-1,0x0) = 672899072 (0x281ba000)
33570: break(0x8065000) = 0 (0x0)
33570: break(0x8066000) = 0 (0x0)
33570: getuid() = 0 (0x0)
33570: geteuid() = 0 (0x0)
33570: getgid() = 0 (0x0)
33570: getegid() = 0 (0x0)
33570: open("./run",0x0,05001455011) = 3 (0x3)
33570: fcntl(3,F_DUPFD,0xa) = 10 (0xa)
33570: close(3) = 0 (0x0)
33570: fcntl(10,F_SETFD,0x1) = 0 (0x0)
33570: sigaction(SIGINT,0x0,{ SIG_IGN 0x0|ONSTACK|RESETHAND|NOCLDSTOP|
NODEFER|NOCLDWAIT|SIGINFO ss_t }) = 0 (0x0)
33570: sigaction(SIGQUIT,0x0,{ SIG_IGN 0x0|ONSTACK|RESETHAND|
NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t }) = 0 (0x0)
33570: sigaction(SIGTERM,0x0,{ SIG_DFL 0x0|ONSTACK|RESTART|RESETHAND|
NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t }) = 0 (0x0)
33570: sigaction(SIGTERM,{ SIG_DFL 0x0|ONSTACK|RESETHAND|NOCLDSTOP|
NODEFER|NOCLDWAIT|SIGINFO ss_t },{ SIG_DFL 0x0|ONSTACK|RESTART|
RESETHAND|NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t }) = 0 (0x0)
33570: sigaction(SIGWINCH,0x0,{ SIG_DFL 0x0|ONSTACK|RESETHAND|
NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t }) = 0 (0x0)
33570: sigaction(SIGWINCH,{ SIG_DFL 0x0|ONSTACK|RESETHAND|NOCLDSTOP|
NODEFER|NOCLDWAIT|SIGINFO ss_t },{ SIG_DFL 0x0|ONSTACK|RESETHAND|
NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t }) = 0 (0x0)
33570: __getcwd(0xbfbfe9c0,0x400) = 0 (0x0)
33570: read(0xa,0x80635c0,0x3ff) = 147 (0x93)
33570: break(0x8067000) = 0 (0x0)
33570: break(0x8068000) = 0 (0x0)
33570: stat("/command/basename",0xbfbfe990) ERR#2 'No such file
or directory'
33570: stat("/usr/local/bin/basename",0xbfbfe990) ERR#2 'No such file
or directory'
33570: stat("/usr/local/sbin/basename",0xbfbfe990) ERR#2 'No such
file or directory'
33570: stat("/bin/basename",0xbfbfe990) ERR#2 'No such file
or directory'
33570: stat("/sbin/basename",0xbfbfe990) ERR#2 'No such file
or directory'
33570: stat("/usr/bin/basename",0xbfbfe990) = 0 (0x0)
33570: pipe() = 3 (0x3)
33570: fork() = 33572 (0x8324)
33572: close(10) = 0 (0x0)
33570: close(4) = 0 (0x0)
33572: close(3) = 0 (0x0)
33572: dup2(0x4,0x1) = 1 (0x1)
33572: close(4) = 0 (0x0)
33572: execve("/usr/bin/basename", [ "basename" ], [ "PATH=/command:/
usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/
X11R6/bin" ])
33572: mmap(0x0,3920,(0x3)PROT_READ|PROT_WRITE,(0x1000)
MAP_ANON,-1,0x0) = 671539200 (0x2806e000)
33572: munmap(0x2806e000,0xf50) = 0 (0x0)
33572: __sysctl(0xbfbfec54,0x2,0x2806ac58,0xbfbfec50,0x0,0x0) = 0 (0x0)
33572: mmap(0x0,32768,(0x3)PROT_READ|PROT_WRITE,(0x1002)MAP_ANON|
MAP_PRIVATE,-1,0x0) = 671539200 (0x2806e000)
33572: issetugid() = 0 (0x0)
33572: open("/etc/libmap.conf",0x0,0666) ERR#2 'No such file
or directory'
33572: open("/var/run/ld-elf.so.hints",0x0,00) = 3 (0x3)
33572: read(0x3,0xbfbfecfc,0x80) = 128 (0x80)
33572: lseek(3,0x80,SEEK_SET) = 128 (0x80)
33572: read(0x3,0x28070100,0x83) = 131 (0x83)
33572: close(3) = 0 (0x0)
33572: access("/lib/libc.so.5",0) = 0 (0x0)
33572: open("/lib/libc.so.5",0x0,00) = 3 (0x3)
33572: fstat(3,0xbfbfed4c) = 0 (0x0)
33572: read(0x3,0x28069ba0,0x1000) = 4096 (0x1000)
33572: mmap(0x0,892928,(0x5)PROT_READ|PROT_EXEC,(0x20002)MAP_NOCORE|
MAP_PRIVATE,3,0x0) = 671571968 (0x28076000)
33572: mprotect(0x28136000,4096,(0x7)PROT_READ|PROT_WRITE|PROT_EXEC)
= 0 (0x0)
33572: mprotect(0x28136000,4096,(0x5)PROT_READ|PROT_EXEC) = 0 (0x0)
33572: mmap(0x28137000,20480,(0x3)PROT_READ|PROT_WRITE,(0x12)
MAP_FIXED|MAP_PRIVATE,3,0xc0000) = 672362496 (0x28137000)
33572: mmap(0x2813c000,81920,(0x3)PROT_READ|PROT_WRITE,(0x1012)
MAP_ANON|MAP_FIXED|MAP_PRIVATE,-1,0x0) = 672382976 (0x2813c000)
33572: close(3) = 0 (0x0)
33572: mmap(0x0,240,(0x3)PROT_READ|PROT_WRITE,(0x1000)
MAP_ANON,-1,0x0) = 672464896 (0x28150000)
33572: munmap(0x28150000,0xf0) = 0 (0x0)
33572: mprotect(0x28076000,790528,(0x7)PROT_READ|PROT_WRITE|
PROT_EXEC) = 0 (0x0)
33572: mmap(0x0,22024,(0x3)PROT_READ|PROT_WRITE,(0x1000)
MAP_ANON,-1,0x0) = 672464896 (0x28150000)
33572: munmap(0x28150000,0x5608) = 0 (0x0)
33572: mprotect(0x28076000,790528,(0x5)PROT_READ|PROT_EXEC) = 0 (0x0)
33572: sigaction(SIGILL,{ 0x28051b0c 0x0|ONSTACK|RESTART|RESETHAND|
NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t },{ SIG_DFL 0x0|ONSTACK|
RESTART|RESETHAND|NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t }) = 0 (0x0)
33572: sigprocmask(0x1,0x0,0x28069afc) = 0 (0x0)
33572: sigaction(SIGILL,{ SIG_DFL 0x0|ONSTACK|RESTART|RESETHAND|
NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t },0x0) = 0 (0x0)
33572: sysarch(0x1,0xbfbfedac) = 17 (0x11)
33572: sigprocmask(0x1,0x28069aa0,0xbfbfedac) = 0 (0x0)
33572: sigprocmask(0x3,0x28069ab0,0x0) = 0 (0x0)
33572: write(2,0x8048af0,78) = 78 (0x4e)
33572: exit(0x1)
process exit, rval = 256
SIGNAL 20 (SIGCHLD)
33570: read(0x3,0xbfbfeb80,0x80) = 0 (0x0)
33570: close(3) = 0 (0x0)
33570: getpgrp() = 28244 (0x6e54)
33570: wait4(0xffffffff,0xbfbfeaf8,0x2,0x0) = 33572 (0x8324)
33570: break(0x8069000) = 0 (0x0)
33570: exit(0x1)
process exit, rval = 256
SIGNAL 20 (SIGCHLD)
28244: poll({3 0x0|PRI|OUT|ERR|HUP|NVAL|RDNORM|RDBAND|WRBAND 9 0x0|
PRI|OUT|ERR|HUP|NVAL|RDNORM|RDBAND|WRBAND ,3,1000020) ERR#4
'Interrupted system call'
SIGNAL 20 (SIGCHLD)
SIGNAL 20 (SIGCHLD)
28244: write(4,0x804b2ae,1) = 1 (0x1)
28244: sigreturn(0xbfbfe8f0) ERR#4 'Interrupted
system call'
28244: sigprocmask(0x1,0xbfbfec40,0x0) = 0 (0x0)
28244: sigprocmask(0x1,0xbfbfec40,0x0) = 0 (0x0)
28244: read(0x3,0xbfbfec97,0x1) = 1 (0x1)
28244: read(0x3,0xbfbfec97,0x1) ERR#35 'Resource
temporarily unavailable'
28244: wait4(0xffffffff,0xbfbfec90,0x1,0x0) = 33570 (0x8322)
28244: open("finish",0x4,01) ERR#2 'No such file
or directory'
28244: gettimeofday({1149979428 558398},0x0) = 0 (0x0)
28244: open("supervise/pid.new",0x605,0644) = 15 (0xf)
28244: close(15) = 0 (0x0)
28244: rename(0x804b2d9,0x804b33f) = 0 (0x0)
28244: open("supervise/stat.new",0x605,0644) = 15 (0xf)
28244: write(15,0xbfbfebe0,5) = 5 (0x5)
28244: close(15) = 0 (0x0)
28244: rename(0x804b2eb,0x804b302) = 0 (0x0)
28244: open("supervise/status.new",0x605,0644) = 15 (0xf)
28244: write(15,0xbfbfec20,20) = 20 (0x14)
28244: close(15) = 0 (0x0)
28244: rename(0x804b311,0x804b32a) = 0 (0x0)
28244: nanosleep({1 0}) = 0 (0x0)
28244: wait4(0xffffffff,0xbfbfec90,0x1,0x0) = 0 (0x0)
28244: read(0x9,0xbfbfec97,0x1) ERR#35 'Resource
temporarily unavailable'
28244: read(0xb,0xbfbfec97,0x1) ERR#35 'Resource
temporarily unavailable'
28244: stat("control/u",0xbfbfebb0) ERR#2 'No such file
or directory'
28244: fork() = 33574 (0x8326)
28244: gettimeofday({1149979429 570157}33574: fcntl(6,F_GETFL,
0x0) = 2 (0x2)
,0x0) = 0 (0x0)
33574: close(28244: open("supervise/pid.new",0x605,0644) = 15
(0xf)
1) = 0 (0x0)
28244: write(15,0xbfbfebb0,6) = 6 (0x6)
33574: fcntl(6,F_DUPFD,0x1) = 1 (0x1)
28244: close(15) = 0 (0x0)
33574: close(5) = 0 (0x0)
28244: rename(0x804b2d9,0x804b33f) = 0 (0x0)
28244: open("supervise/stat.new",0x605,0644) = 15 (0xf)
33574: sigaction(SIGCHLD,{ SIG_DFL 0x0|ONSTACK|RESTART|RESETHAND|
NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t },0x0) = 0 (0x0)
28244: write(15,0xbfbfebb0,4) = 4 (0x4)
33574: sigprocmask(0x2,0xbfbfec10,0x0) = 0 (0x0)
28244: close(15) = 0 (0x0)
28244: rename(0x804b2eb,0x804b302) = 0 (0x0)
33574: sigaction(SIGTERM,{ SIG_DFL 0x0|ONSTACK|RESTART|RESETHAND|
NOCLDSTOP|NODEFER|NOCLDWAIT|SIGINFO ss_t },0x0) = 0 (0x0)
28244: open("supervise/status.new",0x605,0644) = 15 (0xf)
33574: sigprocmask(0x2,0xbfbfec10,0x0) = 0 (0x0)
33574: execve("./run", [ "./run" ], [ "PATH=/command:/usr/local/bin:/
usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin" ])
I believe that last line is the same as the last, so I'm hoping it's
repeating from here on.
--
Regards, Charles.