tobegit3hub / understand_linux_process Goto Github PK
View Code? Open in Web Editor NEWThe open-source ebook of Understand Linux Process
License: MIT License
The open-source ebook of Understand Linux Process
License: MIT License
File: /go_example/spawn.md (Line 6)
Original: 它能够执行任意Go或者非Go程序,并且等待放回结果,外部进程结束后继续执行本程序。
Revise: 它能够执行任意Go或者非Go程序,并且等待返回结果,外部进程结束后继续执行本程序。
这节的示例里没有使用nohup
Would love it if there was English translation.
It's import and we can write a example for it.
File: /process_basic/exit_code.md (Line 4)
Original: 任何进程退出时,都会留下退出码,操作系统根据退出码可以知道进程是否正常运行。
Revise: 任何进程退出时,都会留下退出码,操作系统根据退出码可以知道进程是否正常结束/退出/终止。
http://www.linuxprocess.com/ 是个非 https 的网站,可以考虑接入百度云加速。这样图片载入速度就会快多了。百度云加速会使用香港节点为网站加速。
在 PPID 章节,有 “进程号为1的进程并没有PPID。”,我在机器上 ps -ef 查看之后发现 pid 为1的进程,ppid 为 0.虽然没有实际进程对应,但是 PPID 这个数字还是有的。
"它能让进程脱离终端运行,关闭终端后也不会给进程发信号。" 使用nohup后,进程并没有脱离终端,关闭终端时,系统会按照正流程给此终端下的每一个进程发送SIGHUP信号,用nohup启动的进程会忽略这个信号,所以终端退出,进程不会退出。
I'm gonna learn more about this for advanced usage of process.
特殊情况
我们想想进程数应该等于CPU数,但是如果进程有阻塞呢?这
是
是应该提高进程数增加并行数的
第一个‘是’是否应该是‘时’。
:)
/process_advanced/ipc.md (Line 26)
Original: 套接口(Socket)
Revised: 套接字(Socket)
/process_advanced/system_call.md (Line 4)
Original: 开发者运行得进程运行在用户态(todo: user space)
Revised: 开发者运行的进程运行在用户态(todo: user space)
/process_advanced/namespaces.md (Line12)
Original: 创建进程时使用clone
取代fork
即刻创建同一命名空间下的进程。
Revised: 创建进程时使用clone
取代fork
即可创建同一命名空间下的进程。
/reference/README.md (Line 4)
Original: 最后一章列举本文参考的过的书籍和项目
Revised: 最后一章列举本文参考的过的书籍和项目
/process_advanced/fd.md (Line 18)
Original: 我们网上看到配置ulimit
也是为了调大系统的打开文件个数
Revised: 我们网上看到配置ulimit
也是为了调整系统的打开文件个数
/process_basic/posix.md (Line 18)
Original: 这是非常严谨的文档,感兴趣的同学可以读下,对普通的程序员我们还是以下的内容。
Revised: 这是非常严谨的文档,感兴趣的同学可以读下,对普通的程序员我们还是建议了解以下的内容。
/process_advanced/file_lock.md (Line 14)
Original: 这样我们很容易可以实和读锁,但是所有流程都需要自己控制。
Revised: 这样我们很容易可以**实现【待修改】**读锁,但是所有流程都需要自己控制。
文件:/process_basic/the_more_the_better.md(第18行)
原文:我们想想进程数应该等于CPU数,但是如果进程有阻塞呢?这是是应该提高进程数增加并行数的。
更正:我们想想进程数应该等于CPU数,但是如果进程有阻塞呢?这时是应该提高进程数增加并行数的。
The domain of the website for "read online" link in the README, which is www.linuxprocess.com
, seems to be expired.
标题: "查看状态"这里的内容编译为html之后显示不正常.
Would be really cool to read this book in english
我看sendfile也不像写完了呀。。就没了
We should read the source code before writing about this.
## 编程实例
如何创建孤儿进程呢?只要创建一个进程,把父进程杀掉,子进程就是孤儿进程了。
在 Linux 4.14-rc3 之后的源代码中,关于 进程状态的描述添加了 P (parked)
和 I (idle)
的状态
static const char * const task_state_array[] = {
/* states in TASK_REPORT: */
"R (running)", /* 0x00 */
"S (sleeping)", /* 0x01 */
"D (disk sleep)", /* 0x02 */
"T (stopped)", /* 0x04 */
"t (tracing stop)", /* 0x08 */
"X (dead)", /* 0x10 */
"Z (zombie)", /* 0x20 */
"P (parked)", /* 0x40 */
/* states beyond TASK_REPORT: */
"I (idle)", /* 0x80 */
};
POSIX一节,有的地方书写错误,写成了POXIS。
Tell more about Linux mutex.
project_run/architecture.md中的最后一句:
应为
Thanks for sharing ~
We can call clone
with cgo.
在 进程名字 一节中
示例代码:
package main
import (
"fmt"
"os"
)
func main() {
processName := os.Args[0]
fmt.Println(processName)
}
}
最后多了一个括号
Maybe docker run -d -p 4000:4000 tobegit3hub/understand_linux_process
.
在僵尸进程章节中第二段:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。
第一段:一般我们运行程序都是Fork一个进程后马上执行Exec加载程序,而Fork的是否实际上用的是父进程的堆栈空间,Linux通过Copy On Write技术极大地减少了Fork的开销。 读起来并不顺,是否该改为 Fork实际上用的是父进程的堆栈空间
第二段:Copy On Write的含义是只有真正写的时候才把数据写到子进程的数据,Fork时只会把页表复制到子进程,这样父子进程都指向同一个物理内存页,只有再写子进程的时候才会把内存页的内容重新复制一份。 再是否改改为在
在**_进程基础**_一章的**_退出码**_一节的**_使用退出码**_小节中,第二段:
当然有意义,我们在写Bash脚本时,可以根据前一个命令的退出码选择是否执行下一个命令。例如安装Run程序的命令 wget
https://raw.githubusercontent.com/runscripts/run/packages/packages/darwin_amd64/run || sudo run --init ,只有下载脚本成功才会执行后面的安装命令。
在上面的命令中解释中,实际情况是wget执行成功之后,不会执行run,除非wget执行失败,才会执行run!是否应该将||修改为&&?
Make it easier to run the online ebook.
Tell more about interrupt
system call.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.