Asw*_*P J 14 shell process background-process
我从现代操作系统一书中读到,当一个命令运行时,shell 创建一个子进程,等待它直到子进程完成执行,然后等待来自用户的另一个命令。对于像gedit. 终端在我关闭之前不会接受命令gedit。但是,当我打开atom代码编辑器时,shell 立即返回,即使编辑器正在运行,也准备好接受下一个命令。关闭终端不会关闭原子。这是否意味着编辑器不是作为子进程打开的?使这成为可能的潜在机制是什么?
跑步ps au | grep atom给予
<username> 8042 0.0 0.0 15944 2264 pts/1 S+ 00:55 0:00 grep --color=auto atom
Run Code Online (Sandbox Code Playgroud)
Tho*_*key 19
该问题询问两种类型的程序:
在第一种情况下,在 shell 中与用户交互的程序被设计为在将控制权返回给 shell 之前运行完成。没有做任何特别的事情。
第二种情况更复杂。通常,程序会fork(在内存中复制自己的副本),并安排删除它与 shell 的控制终端的关联,并可能执行另一个程序——它独立于原始 shell 运行。您可能会看到来自第二个程序的消息,但它通常不会以其他方式与您交互。根据它的使用方式,您可能有
进一步阅读:
| 归档时间: |
|
| 查看次数: |
1253 次 |
| 最近记录: |