Moh*_*ani 3 command-line process background-process
我一直听说过后台(但不是桌面后台)进程。但我不明白它们到底是什么。例如,请查看此链接的答案守护进程、服务和进程之间的技术区别是什么?我在这里引用:
守护进程 - 守护进程……它们是在后台运行且不具有交互性的进程 。他们没有控制终端...
它们的用途是什么?还有任何相关的命令来显示在后台运行的进程吗?
简单的定义是一个不连接到活动终端或显示器的进程......但有多种方法可以实现这一点:
大多数我们认为的后台进程是系统服务。这些通常是由高级 init 守护进程(Upstart、Systemd 等)启动的,并且通常仍然是该守护进程的子进程。init 守护程序会将其输出保留以进行日志记录。
分离的进程是将进程的父进程更改为 PID=0, /sbin/init。这意味着即使您关闭终端或 X 会话,该过程仍将保留(只要它不依赖于其他事物——例如 X 会话)。有很多方法可以做到这一点。除非另外重定向,否则在终端死机后,分离的进程的输出不会发生任何变化。
重要的是要注意,解除关联并不一定意味着后台,但如果当前终端死机,则该进程会自动被视为“在后台”,因为它无法管理其 IO。
然后是虚拟外壳,它们本身可以在后台运行并“保持”为您打开的活动进程。screen可能是最好的例子。它允许您断开并重新连接到各种终端会话,如果您需要在服务器上保留终端工作流(或无限期地运行具有输出的某些内容,例如irssiIRC 客户端),这将非常方便。
最后是shell定义。许多外壳程序(如 Bash 的命令行界面)允许您将进程置于后台。这只是意味着 IO 文件 STDOUT、STDIN 和 STDERR 与当前终端断开连接。该进程继续在其自己的线程中运行,并且您会收到另一个提示。该进程不会自动解除关联,因此如果 Bash 会话关闭,所有后台任务也会关闭。这是一个使用 Bash 的简单示例。
后台意味着在您的系统上运行的进程在桌面上不可见(即它不必在桌面上打开应用程序)。
查看所有进程的命令称为“ps”。示例ps -ef:
ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 apr10 ? 00:00:02 /sbin/init
root 2 0 0 apr10 ? 00:00:00 [kthreadd]
root 3 2 0 apr10 ? 00:00:07 [ksoftirqd/0]
root 5 2 0 apr10 ? 00:00:00 [kworker/0:0H]
root 7 2 0 apr10 ? 00:00:33 [rcu_sched]
root 8 2 0 apr10 ? 00:00:00 [rcu_bh]
root 9 2 0 apr10 ? 00:00:01 [migration/0]
root 10 2 0 apr10 ? 00:00:02 [watchdog/0]
root 11 2 0 apr10 ? 00:00:02 [watchdog/1]
root 12 2 0 apr10 ? 00:00:01 [migration/1]
root 13 2 0 apr10 ? 00:00:07 [ksoftirqd/1]
root 15 2 0 apr10 ? 00:00:00 [kworker/1:0H]
Run Code Online (Sandbox Code Playgroud)
时间长了很多。例如,如果你想找到铬,你可以ps -ef | grep chromium这样做:
ps -ef |grep chrom
xxxxxx 2874 1207 0 apr10 ? 00:54:28 /usr/lib/chromium-browser/chromium-browser --enable-pinch
xxxxxx 2880 2874 0 apr10 ? 00:00:04 /usr/lib/chromium-browser/chromium-browser --enable-pinch
xxxxxx 2881 2874 0 apr10 ? 00:00:00 /usr/lib/chromium-browser/chrome-sandbox /usr/lib/chromium-browser/chromium-browser --type=zygote
xxxxxx 2882 2881 0 apr10 ? 00:00:00 chromium-browser --type=zygote
xxxxxx 2888 2882 0 apr10 ? 00:00:00 chromium-browser --type=zygote
Run Code Online (Sandbox Code Playgroud)
查看进程的流行程序是top和htop。
您可以使用此列表从命令行终止进程。
系统监视器可用于查看后台任务:
