什么是作业中的后台进程和前台进程

什么是作业中的后台进程和前台进程

我正在学习 Redhat Linux 7,主题是监视和管理 Linux 进程,我了解 Processess 及其命令。但我不明白“控制作业”和在后台运行作业及其实用的后台和前台进程。您能为我们解释一下这个术语吗?

答案1

从交互式 shell 发出的大多数命令都运行在前景。这基本上意味着您必须等待执行的命令(或 processus )停止才能执行其他操作。对于长/复杂的程序或脚本,另一种方法是在背景。这意味着您可以在长程序执行时继续工作。

&命令末尾的& 符号可以实现此目的。您还可以使用 ctrl-Z 暂停前台命令并将其与该命令一起放入后台bg。此后您可以管理这些后台任务(jobs命令)、杀死它们等。

请注意,后台命令是不是与您的 tty 分离:在某些情况下,后台命令可能会等待用户输入(请参阅fg将作业带回前台的命令)。如果您结束终端会话(通过关闭终端、注销、关机等),后台作业也可能被终止(nohup更多详细信息,请参阅 参考资料)。

答案2

简单来说,

您启动的每个进程都在前台运行。它从键盘获取输入并将输出发送到屏幕。

$ls ch*.doc

列出当前目录中的所有文件,

后台进程在不连接到键盘的情况下运行。如果后台进程需要任何键盘输入,它就会等待。在后台运行进程的优点是您可以运行其他命令;您不必等到它完成才能开始另一个!

启动后台进程的最简单方法是在命令末尾添加与号 (&)。

$ls ch*.doc &

下面的一些链接会对您有所帮助

https://stackoverflow.com/questions/8938058/background-process-vs-foreground-process

http://linux.about.com/cs/linux101/a/multitasking.htm

https://stackoverflow.com/questions/6573249/difference- Between-foreground-job-and-background-job

答案3

&通过在末尾添加来在后台运行程序就像在 Windows 或 Mac 中运行最小化的应用程序一样。并且使用该fg命令就像将其恢复回桌面一样。

ctrl+z相比之下,当程序正在运行时按下将暂停其执行。这意味着它将停止完成正在执行的操作并发送到后台。

此外,这些程序与您当前的会话相关联,因此如果您退出终端,所有在后台运行或暂停的程序也将结束。

相关内容