了解Linux后台正在运行哪些进程

时间:2020-01-09 14:16:31  来源:igfitidea点击:

如何确定Linux操作系统在后台运行哪些进程?
在Linux中,后台进程不过是独立于shell运行的进程。
一个人可以离开终端窗口,但是进程在后台执行,而无需用户进行任何交互。
例如,Apache或Nginx Web服务器始终在后台运行以为您提供图像和动态内容。
该页面显示了如何列出在Linux中后台运行的所有此类进程。

如何找出后台正在运行的进程

  • 您可以使用ps命令列出Linux中的所有后台进程。其他Linux命令来获取Linux后台正在运行的进程。
  • top命令显示Linux服务器的资源使用情况,并查看正在消耗大多数系统资源(例如内存,CPU,磁盘等)的进程。
  • htop命令就像top命令一样,但具有改进的用户界面。

让我们看到传统命令示例和现代命令示例,这些示例可用于管理Linux中正在运行的进程。

如何在后台运行Linux进程?

要在后台运行进程或命令/shell脚本,请在用于运行作业的命令/shell脚本的末尾添加一个&(符号)。
例如:

command &
/path/to/script &
sleep 10000 &

列出您的后台进程

运行作业命令:

jobs
[1]+  Stopped                 vim
[2]-  Running                 sleep 10000 &

要停止前台进程,请按CTRL + Z。
一个人可以按编号引用后台进程或已停止的进程。
例如,vim已停止并且编号为1,因此运行bg命令以重新启动已停止的后台进程:

bg %n
bg %1

可以使用fg命令将后台进程带入前台,例如sleep命令:

fg %n
fg %2

最后,使用kill命令杀死一个名为sleep 10000的正在运行的进程:

kill %n
kill %2

Linux后台进程列表命令

打开终端应用程序,然后发出以下ps命令命令以显示系统上所有正在运行的进程,包括在后台运行的进程:

$ sudo ps -aux | less

或者

# ps aux | more

使用ps命令列出Linux上所有正在运行的进程

了解ps命令输出

第一列显示在Linux系统上启动前台或后台进程的用户名。
例如,守护程序用户启动了atd进程。
进程名称本身显示在最后一栏中。

STAT coloum为我们提供了Linux进程的状态:

处理状态代码描述
D不间断的睡眠(通常是IO)
I空闲内核线程
R正在运行或可运行(在运行队列中)
S睡眠中断(等待事件完成)
T由作业控制信号停止
t在跟踪过程中被调试器停止
W分页(自2.6.xx内核以来无效)
X死(永远不可见)
Z已终止的(僵尸)进程,已终止但未被其父进程收割

通常,可中断睡眠中的进程在后台运行,并在进程STAT列上显示S
可中断的睡眠意味着可以借助kill命令终止或终止进程。
另一方面,处于D或不间断睡眠状态的进程通常正在等待I/O。
因此,您无法杀死D状态进程,因为它们是不间断的。
其他字符也可能显示如下:

处理状态代码描述
<高优先级(对其他用户不利)
N低优先级(对其他用户很好)
L已将页面锁定在内存中(用于实时和自定义IO)
s是会议负责人
l是多线程的(使用CLONE_THREAD,就像NPTL pthreads一样)
+位于前台进程组

我的Linux进程运行在前台还是后台?

根据上表,可以确定Linux进程是在后台还是在前台或正在运行等等。

命令/进程ps状态代码前景还是背景?
/sbin/init`Ss
/usr/sbin/rsyslogd -nSsl背景进程(可中断睡眠+会话负责人和多线程应用程序)
/sbin/agetty --noclearSs +背景处理(可中断的睡眠和会话领导者,处于前台组中)
ps auxR +正在运行的前台进程

使用以下命令列出Linux进程以及pid,用户名和stat,如下所示:

ps -eo pid,user,stat,comm

可以将ps与grep命令命令结合使用,如下所示:

ps -eo pid,user,stat,comm | grep nginx

如何仅列出Linux上正在运行的进程?

ps r

列出此当前终端上的所有进程

ps T

显示Linux进程而无需控制ttys

ps x

top和htop命令

top命令实时显示Linux进程。
按以下方式运行,并查找" STAT"列。

top
top [option]

同样,可以使用top的增强版本,例如atop或htop。

htop
atop
htop [options]