什么是后台进程?

穆罕默德·雷扎·雷兹瓦尼(Mohammad Reza Rezwani)

我一直都听说过后台(而不是桌面后台)进程。但是我不明白他们到底是什么。例如,请查看此链接的答案,守护程序,服务和流程之间的技术区别是什么?我在这里引用:

守护程序-守护程序...它们是在后台运行且不交互的进程他们没有控制终端...

它们的用途是什么?是否有任何相关命令来显示后台运行的进程?

它是

简单的定义是没有连接到活动终端或显示器的过程...但是有多种方法可以实现此目的:

  • 我们认为后台进程中的大多数是系统服务。这些通常是由高级init守护程序(Upstart,Systemd等)启动的,通常仍是该守护程序的子级。它将由init守护程序重新提供其输出以进行日志记录。

  • 甲过程解除关联是你改变过程到PID = 0的父,/sbin/init这意味着即使关闭终端或X会话,该过程也将保留(只要它不依赖于其他事物,例如X会话)。有很多方法可以做到这一点除非另有重定向,否则在终端死亡后,未关联的进程的输出将不会发生任何事情。

    重要的是要注意,取消关联并不一定意味着背景,但是如果当前终端设备死亡,则该过程将自动视为“背景”,因为它无法管理其IO。

  • 然后是虚拟外壳程序,它们本身可以在后台运行,并“打开”活动进程。screen也许是最好的例子。它允许您断开并重新连接到各种终端会话,如果您需要在服务器上保留终端工作流(或无限期地运行带有输出的内容,例如irssiIRC客户端),这将非常方便

  • 最后,有外壳定义。许多外壳程序(如Bash的命令行界面)使您可以使进程后台运行。这仅表示IO文件STDOUT,STDIN和STDERR已从当前端子断开。该进程继续在其自己的线程中运行,并且还会提示您。该过程不会自动取消关联,因此如果Bash会话关闭,则其所有后台任务也会关闭。这是Bash的一个简单示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章