Linux的进程

一个程序被加载内存当中,称为一个进程

Linux当中是以 PID区分不同的进程

1) ps 用于列出当前的进程
aux 列出所有用户所有进程
-eu 列出当前用户的所有进程
lax 列出更多的长格式信息
-ef 列出所有进程
j 列出job信息

[root@server0 ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 52328 6488 ? Ss 12:02 0:02 /usr/lib/systemd/systemd --switched-root --system --deser

VSZ:进程申请的内存大小
RSS:系统分配的内存大小
TTY: ? 表示这个进程在后台运行
STAT: 表示进程的状态
T 表示进程被临时挂起;
Z 进程刚刚被终止(僵尸进程);
R 进程被列入计划,或者被加载到CPU;
S 进入等待状态;
D 进程不可中断,等待设备的响应;

 

2.Controlling Jobs

[root@server0 ~]# (while true; do echo -n "hello " >>/tmp/1.txt; sleep 1; done)

ctrl+c 可以结束正在运行的job

[root@server0 ~]# (while true; do echo -n "hello " >>/tmp/1.txt; sleep 1; done)& //将job调到后台执行
[1] 30601

[root@server0 ~]# jobs 查看后台运行的job
[1]+ Running ( while true; do
echo -n "hello " >> /tmp/1.txt; sleep 1;
done ) &

 

[root@server0 ~]# fg 1 将后台的程序,调回前台运行
( while true; do
echo -n "hello " >> /tmp/1.txt; sleep 1;
done )

ctrl+z 可以将前台的job暂停,并调到后台;

[root@server0 ~]# bg 1 将后台暂停的程序,在后台恢复运行;
[1]+ ( while true; do
echo -n "hello " >> /tmp/1.txt; sleep 1;
done ) &

 

3.Killing Processes

1) 结束jobs
先将job调到前台,再用ctrl+c 结束
2)结束进程
方法一: kill -9 强制杀死进程

[root@server0 ~]# jobs -pl //查看jobs的进程号
[1]+ 31263 Running ( while true; do
echo -n "hello " >> /tmp/1.txt; sleep 1;
done ) &

方法二: killall -9 进程名 不建议使用
killall -u username 结束用户的进程
方法三: kill -9 PPID
ps -j
3) pkill 结束一个用户的所有进程
-U 根据进程所属的用户名终止相应进程
-t 根据所在终端终止相应进程

[root@server0 ~]# pkill -U student
[root@server0 ~]# pkill -9 -t pts/1

查看进程树
pstree

[root@server0 ~]# pstree -p student //查看student用户的进程树及PID

 

[root@server0 ~]# uptime
16:07:17 up 1:31, 3 users, load average: 0.00, 0.04, 0.11

上一篇
下一篇