[linux] 关于后台运行进程的小实验
我们经常有将进程放到后台运行的需求,我们可以通过编程实现守护模式,也可以在shell中启动进程的时候配置
守护模式
通过编程,可以使得程序进入daemon模式
fork和setsid
shell启动命令
- &
使用&可以让进程后台运行,但是仍然会输出到终端上
setsid ./test.sh &
设置父进程为init进程
我们经常有将进程放到后台运行的需求,我们可以通过编程实现守护模式,也可以在shell中启动进程的时候配置
通过编程,可以使得程序进入daemon模式
fork和setsid
使用&可以让进程后台运行,但是仍然会输出到终端上
setsid ./test.sh &
设置父进程为init进程
TodoList sysmon线程 eBPF和ipvs : ref kafka client, 看看sarama,了解kafka客户端能获得哪些东西,server api暴露了哪些东西 kv db, 比如etcd的boltdb多读少写, lsm-tree的多写少读 etcd ,consul 的分布式
UnderTheHood 这里记录一些具有重要的知识 Page Cache 主存充当两个功能,一个是进程的存储空间(堆栈),一个磁盘的缓存(page cache) 如此一来,一切都说得通了,我们常说read要从内核缓冲区拷贝到用户缓冲区,你也许和我有一样的疑惑,为什么要先拷贝到内核缓冲区呢?不能直接
git clone https://github.com/opencontainers/runc.git, 我们简单阅读下,代码不多 入口 入口没啥好说的,先找main.go文件,可以看到runc这个库用了 github.com/urfave/cli 这个命令行库和 github.com/sirup
oci distribution spec 比较简单,就是定义了一些用于pull/push 的api 一个有趣的事实是,oci registry 不只是存储镜像,也可以用于存储helm chart。 Pull Pull manifest GET /v2//manifests/ name: 一般是${
描述了一个镜像的打包目录和相关文件的schema 目录结构 利用docker save拿到一个docke 镜像的tar包,解包后得到如下目录,这是一个兼容oci image spec的目录(但也只是兼容,不是严格相等,里面有一些oci image spec里未定义的文件) . ├── blobs /