程序、进程、线程的概念及区别程序、进程、线程的概念
程序、进程、线程的对应关系
一个程序可以对应多个进程,一个进程只能对应一个程序
一个进程可以对应多个线程,一个线程只能对应一个进程
进程、线程的区别
注:在同一进程中,线程的切换不会引起进程的切换,
在由一个进程中的线程切换到另一个进程中的线程时,将会引起进程的切换
查看进程进程=代码段+数据段+堆栈段+进程控制块PCB
进程类型
查看进程
ps [选项]
支持三种选项:Unix选项、BSD选项、GUN选项
常用Unix选项
常用BSD选项
详情请看 ps --hlep详解
查看父子进程关系
pstree
详情请看 pstree --hlep详解
搜索进程
ps [选项] | grep 进程名
pgrep 进程名
pidof 进程名
查看进程eg.
用三种命令分别查看redis-server进程的pid
linux-szge:/home/soft # pgrep redis-server
1560
linux-szge:/home/soft # pidof redis-server
1560
linux-szge:/home/soft # ps aux | grep redis
root 1560 0.5 0.8 1134080 445092 pts/4 Ssl Mar07 272:49 /home/soft/redis/bin/redis-server *:6379
ps aux分割成了11个字段含义如下
第11个字段是/home/soft/redis/bin/redis-server *:6379 是CMD命令名
进程的状态
Ssl则表示是:redis是一个多线程的可中断休眠态的领导者进程
linux-szge:/home/soft # ps -ef | grep redis
root 1560 1 0 Mar07 pts/4 04:33:01 /home/rzrk/redis/bin/redis-server *:6379
pa -ef分割成了8个字段含义如下
注:父进程先于子进程结束,子进程打印父进id就会是1
注:linux操作系统中各进程相关信息均保存在/proc/PID目录下的各个文件中
杀掉进程kill [信号] 进程号常用进程信号(信号可通过kill -l查看)
killall [信号] 进程名
详情请看 killall --hlep详解
pkill 进程名
详情请看 pkill --hlep详解
杀掉进程eg.
强制杀掉redis-server
linux-szge:/home/soft # pidof redis-server
1560
linux-szge:/home/soft # kill -9 1560
linux-szge:/home/soft # ps aux | grep redis
root 15373 0.0 0.0 4252 564 pts/4 S+ 18:35 0:00 grep redis
调度进程设置进程优先级
系统的优先级的取值范围是-20到19,默认优先级为0,-20的优先级最大
nice -n 进程名
详情请看 nice --hlep详解
renice -n 进程号
详情请看 renice --hlep详解
挂起进程
挂起 ctrl+z
终止 ctrl+c
查看被挂起的进程
jobs
恢复到前台运行
fg
恢复到后台运行
bg
用户退出时继续执行进程
nohup 执行的命令 &
注:如果nohup 执行的命令中如果没有指定输出的数据位置的话,系统默认会nohup命令执行后的数据信保存在nohup.out中
用户退出时继续执行进程eg.
linux-szge:/home/soft #nohup ./test.sh > /tmp/test.log 2>&1 &
举报/反馈