这是后台进程的常见定义:
“后台进程是一种无需用户输入即可运行的程序。当用户与前台进程交互时,许多后台进程可以在诸如Linux的多任务操作系统上运行。例如,从不要求用户输入,而其他仅在用户忙于当前正在前台运行的程序时暂时处于后台,因此其他进程可以处于睡眠状态并占用交换空间,直到被激活为止,这使其当前成为后台进程。”
有了这个定义,难道不会像apache2这样的进程成为后台进程,因为它永远不会与终端中的用户输入交互?难道这不考虑大多数进程后台进程,因为大多数在系统上运行的进程不会处理终端中的用户输入吗?奇怪的是,由于用户确实通过http请求(不是终端)与apache2进行交互,因此我个人不会将apache2视为后台进程。
前台进程不需要用户交互。你可以做
cp very_large_file destination
这将阻塞您的终端,直到复制完成,并且将被视为没有用户交互的前台进程。这里的要点是该进程是否阻止其他进程的执行,直到它终止为止。
可以将前台进程设为后台的两种方法:
1-&在命令行末尾添加“&”号:
cp very_large_file destination &
2-停止前台进程,然后将其引入后台:
cp very_large_file destination
CTRL+Z
bg
现在apache2
肯定可以算作一个后台进程:是的,您可以通过http请求与之交互,但是它只是侦听端口80(默认情况下)以等待这样的请求:它不会阻塞系统,直到用户发出请求为止。
为何在大多数流程中都将问题视为后台流程?在“多任务操作系统”中,这确实是正常的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句