Linux之进程管理(ps命令)

上周看这个ps命令。

2 02 3 年3 月1 5 号。

我那个朋友说ps-aux和ps-ef差别不小。

ps-ef能看到父PID。

ps-aux看CPU内存情况。

具体怎么用要看场景。

比如ps aux | grep java。

或者ps ef | grep nginx。

这些例子都编得出来。

但参数太多。

我记不住。

算了。

在linux中进程的状态都有哪些?在什么情况下发生转化

上周,我那个朋友在研究操作系统进程状态,他说进程状态挺有意思的。
运行态,就像在跑道上奔跑的运动员,随时准备起跑。
可中断睡眠态,就像在等待绿灯的车辆,一旦条件成熟,就能启动。
不可中断睡眠态,就像在隧道里等待的火车,不管信号如何,都得等到隧道尽头。
僵死态,就像已经跑完马拉松的运动员,虽然完成了任务,但还没被领奖。
终止态,就像比赛提前结束,进程被强制停止了。
他说,这些状态构成了操作系统中的进程管理,挺复杂的。
算了,你看着办吧。

剖析Linux中进程的六种状态

嘿,咱们聊聊Linux中进程的六种状态,这事儿还挺有意思的。

首先得说说R运行状态。
这可不是说进程一定在跑,它意味着进程要么正在运行,要么在运行队列里等着CPU调度。
比如,你用ps或者top命令就能看到运行中的进程。
创建新进程的时候,比如用fork,新进程通常都会短暂地处于R状态,等着调度执行。

再来看S睡眠状态。
这状态表示进程在等待某个事件完成,比如I/O操作或者信号量。
这种等待是可以被中断的。
所以,当你看到进程在等待某个条件时,它就可能处于S状态。
比如,一个进程在等待用户输入,就会进入这个状态。

然后是D磁盘休眠状态。
这个状态有点像S状态,但是它等待的是I/O操作,比如磁盘读写。
和S状态不同的是,D状态是不能被中断的,因为和硬件操作有关。
所以,如果磁盘读写出现问题,进程就可能进入D状态。

T停止状态,这状态意味着进程被人为停止了。
比如,你可以用kill命令发送SIGSTOP信号给进程。
T状态的进程是可以被恢复的,用SIGCONT信号就行。
在这个状态下,进程不占用CPU资源,也不响应信号。

Z僵尸状态,这玩意儿挺有意思的。
进程结束了,但是父进程还没读取它的退出状态,它就变成了僵尸。
僵尸进程占着资源,不处理不释放,挺烦人的。
解决方法是让父进程去读取退出状态。

X死亡状态,这个状态非常短暂,几乎不可能捕捉到。
它表示进程已经结束了,父进程已经读取了它的退出状态。
一旦读取完毕,进程的资源就会被释放。

还有个额外的东西叫孤儿进程。
这玩意儿就是父进程已经死了,但是子进程还在运行。
不过没关系,系统会把它交给init进程,所以不会有什么大问题。

总之,这些状态都是Linux系统中进程行为的反映。
了解这些,对我们理解进程和系统运行非常有帮助。