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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.