系统上启动守护进程后,有时会异常退出。
查看日志
/var/log/messages
日志文件中放了进程退出的信息。
dmesg | egrep -i -B100 'killed process'
用 strace 命令追踪系统调用和信号
手册:https://man7.org/linux/man-pages/man1/strace.1.html
具体参数参考这里:https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html
查看 time 命令的系统调用
$ strace time
execve("/usr/bin/time", ["time"], 0x7ffd79009a30 /* 25 vars */) = 0
brk(NULL) = 0x55588fa87000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=27599, ...}) = 0
mmap(NULL, 27599, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f31de9b4000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\34\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2030544, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f31de9b2000
mmap(NULL, 4131552, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f31de3a3000
mprotect(0x7f31de58a000, 2097152, PROT_NONE) = 0
mmap(0x7f31de78a000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e7000) = 0x7f31de78a000
mmap(0x7f31de790000, 15072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f31de790000
close(3) = 0
arch_prctl(ARCH_SET_FS, 0x7f31de9b3500) = 0
mprotect(0x7f31de78a000, 16384, PROT_READ) = 0
mprotect(0x55588f2b2000, 4096, PROT_READ) = 0
mprotect(0x7f31de9bb000, 4096, PROT_READ) = 0
munmap(0x7f31de9b4000, 27599) = 0
write(2, "Usage: time [-apvV] [-f format] "..., 177Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
[--portability] [--format=format] [--output=file] [--version]
[--quiet] [--help] command [arg...]
) = 177
exit_group(1) = ?
+++ exited with 1 +++
查看特定进程
# strace -T -tt -e trace=all -p 12365
strace: Process 12365 attached
11:14:47.591011 poll([{fd=12, events=POLLIN|POLLERR|POLLHUP}], 1, 259200000) = -1 ENOSYS (Function not implemented) <0.000039>
11:20:01.580555 restart_syscall(<... resuming interrupted poll ...>) = -1 ENOSYS (Function not implemented) <0.000022>
11:20:01.580640 recvfrom(12, 0x7fdd8e569000, 8192, MSG_DONTWAIT, NULL, NULL) = -1 ENOSYS (Function not implemented) <0.000031>
11:20:01.580707 rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], 0x7ffce5c022c0, 8) = -1 ENOSYS (Function not implemented) <0.000068>
11:20:01.580826 close(21) = -1 ENOSYS (Function not implemented) <0.000050>
11:20:01.580912 access("/tmp/myweb/Composer/vendor/composer/../php-amqplib/php-amqplib/PhpAmqpLib/Exception/AMQPHeartbeatMissedException.php", F_OK) = -1 ENOSYS (Function not implemented) <0.000023>