1, 系统中的父子进程关系, 以及 docker 是如何处理的这种父子进程关系, 线上问题发现, 子进程长时间得不到退出.
2, 调用 system 系统调用发生了啥事情, 发现大量的页表拷贝.
3, 通过 shell 命令通过 tid 得到 pid
4, 如何使用 tcpdump 看数据包的传输
5,stap 中如何得到用户态的栈
6,SIGTERM,SIGKILL,SIGSTOP 信号
sigtem 是可以覆盖的, 但是 sigkill 和 sitstop 的不可以截流.
7, 如何查看某进程是否单独单独注册了信号处理函数? sigkill 函数也是可以被覆盖的吗? 在 docker 中, 杀掉 shim 进程时发现整个容器都死掉了, 这不符合进程的继承关系呢! SIGKILL 信号不能被重载, 那么 kill shim 的时候为啥子进程也退出了? 是因为什么特殊的 fork 吗? shim 也不是一个容器里的 1 号进程呀, 为啥这里就 n
回答: 自己想可能有两种解决方案了 1)shim 自己做成一个 pid namespace, 在这个 namespace 下再 fork 出一个 namespace, 第二种方案是 A->shim->docker container,dockerd 中记录着 shim 和 container 的对应关系, 然后给 1 号进程发信号, 抓 trace 看下. 果然
- containerd-1038 [001] d... 114996.411125: signal_generate: sig=9 errno=0 code=0 comm=tail pid=2622 grp=1 res=0
- tail-2622 [001] d... 114996.411157: signal_deliver: sig=9 errno=0 code=0 sa_handler=0 sa_flags=0
- tail-2622 [000] d... 114996.435758: signal_generate: sig=17 errno=0 code=262146 comm=systemd pid=1 grp=1 res=0
这里的 1038 就是 containerd 进程下的一个线程, 原来是这样管理的进程
[各种技能都会, 全栈工程师, 每天为自己制定的计划必须全部完成]
一个已经终止, 但是其父进程尚未对其进行善后处理 (获取终止子进程的有关信息, 释放它仍占用的资源) 的进程是僵尸进程, fork 了大量子进程, 除非父进程等待去得子进程的终止状态, 不然这些子进程终止后就会变成僵尸进程
8, 进程成为僵尸进程会释放所有的 fd 吗?
在成为僵尸进程的时候, 进程仍然保存着进程的, 那么到底释放没有呢? 释放掉了
- [<ffffffff8108401f>] do_exit+0x75f/0xae0
- [<ffffffff81084423>] do_group_exit+0x43/0xb0
- [<ffffffff810844a4>] SyS_exit_group+0x14/0x20
- [<ffffffff818244f2>] entry_SYSCALL_64_fastpath+0x16/0x71
- [<ffffffffffffffff>] 0xffffffffffffffff
[可不可以通过 do_exit 0x75f/0xae0 看出来到底在哪呢? 通过 readelf 这]
9,readelf 这些文件 c 文件和汇编到底准不准呢?
10, 用户 id 和有效用户 id 和设置用户 id
用户 id 就是登录的时候的用户 id 了, 有效用户 id, 有效用户 id 是设置在可执行文件上. 当执行 exec 时候, 当可执行文件上设置了 s 位, 那么程序是按照可执行的属主来确定实际的文件的可执行权限, 并且这个权限会粗放在 suid 中. 这样文件执行起来就很方便了, 在程序执行的过程中, 程序可以随时剥夺程序的执行权限. 那么 sudo 又干了啥事呢? 看下 sudo 做了啥事情,
-rwsr-xr-x 1 root root 136808 3 月 31 2016 /usr/bin/sudo
现在是所以从 sudo 继承过来就有了 root 权限了!!!! 发现了一件事情:
-rw-rw-r-- 1 guest guest 4096 8 月 18 23:35 fileGuest
-rw-rw-r-- 1 guest2 guest2 0 8 月 18 23:05 fileGuest2
-rw-rw-r-- 1 hon hon 4096 8 月 18 23:35 fileHon
-rw-rw-r-- 1 hon hon 96 8 月 18 22:52 Makefile
-rwsrwxr-x 1 guest guest 8960 8 月 18 23:33 uid
在上面的文件中, 执行 uid 程序(./uid),uid 程序既能访问 fileGuest, 也能访问 fileHon, 这说明是 uid 和 euid 是一起来决定文件的访问权限了吗?
但是有个奇怪的现象就是 sudo ./uid, 此时进程的权限是 uid=0,euid=1002(guest), 然后去访问 fileHon 发生了错误, 如果是 uid 和 euid 一起决定对文件的访问权限, 为什么 uid=0 就打不开文件了呢?
所以 uid 必须完全 match 才可以执行!!!!!!!root 还不行!!!!!!!!!!!!!! 好了这个问题到此位置
来源: http://www.bubuko.com/infodetail-2733446.html