Linux - 定位进程异常退出

系统上启动守护进程后,有时会异常退出。

查看日志

/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>
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值