查看Linux后台正在运行的进程
时间:2019-11-20 08:53:28 来源:igfitidea点击:
如何查看在Linux后台中,哪些进程正在运行?
如何确定Linux操作系统在后台运行哪些进程?
如何在后台运行Linux进程?
要在后台运行进程或命令/shell脚本,
在执行命令或者shell脚本时,在末尾添加一个&(符号)。例如:
command & /path/to/script & sleep 10000 &
查看在后台运行的进程
运行jobs命令:
jobs
[1]+ Stopped vim [2]- Running sleep 10000 &
要停止前台进程,请按CTRL + Z。
使用bg命令重启已停止的后台进程。
例如,vim已停止并且编号为1,
bg %n bg %1
可以使用fg命令将后台进程带回前台,
例如上面的sleep命令:
fg %n fg %2
使用kill命令可以杀死sleep进程:
kill %n kill %2
Linux列出后台进程
使用ps命令命令以显示系统上所有正在运行的进程,包括在后台运行的进程:
$ sudo ps -aux | less
或者使用ps命令列出Linux上所有正在运行的进程:
# ps aux | more
ps命令输出说明
第一列显示在Linux系统上启动前台或后台进程的用户名。
STAT 列为我们提供了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 aux | more rpc 680 0.0 0.0 69280 1004 ? Ss Jan01 0:01 /sbin/rpcbind -w root 1126 0.0 0.2 230956 5672 ? Ssl Jan01 0:53 /usr/sbin/rsyslogd -n root 9915 0.0 0.0 155472 1864 pts/0 R+ 04:26 0:00 ps aux root 1119 0.0 0.2 198088 4204 ? Ss+ Jan01 0:00 /sbin/agetty --noclear
命令/进程 | ps状态代码 | 前台还是后台进程 |
---|---|---|
/sbin/init | Ss | |
/usr/sbin/rsyslogd -n | Ssl | 后台进程(可中断睡眠+会话负责人和多线程应用程序) |
/sbin/agetty --noclear | Ss + | 后台进程(可中断的睡眠和会话领导者,处于前台组中) |
ps aux | R + | 正在运行的前台进程 |
使用以下命令列出Linux进程以及pid,用户名和stat状态,如下所示:
ps -eo pid,user,stat,comm ps -eo pid,user,stat,comm | grep nginx
如何只列出Linux上正在运行的进程?
ps r
列出当前终端上的所有进程
ps T
top和htop命令
可以使用top命令实时显示Linux进程。
top top [option]
同样,可以使用top的增强版本,例如atop或htop。
htop atop htop [options]