[Command] Linux 进程管理

xiaoxiao2021-02-28  97

工作管理(Job Control)

在进行bash的工作管理时需要注意。 1)前台就是指你可以控制的命令行。 2)后台就是自行运行的工作,你无法使用ctrl+c终止,但可以使用fg/bg调用。 3)后台中执行的程序不能等待输入。

后台执行

在命令行后面加上&。此时,命令行仍然可以进行别的操作。此时,当任务已经完成时,会在命令行中有所显示。但为了让自己更专注于命令行的操作,可以将后天运行程序的输出和错误输出重定向到一个输出文件中。

tar -zocvf file file2 > /tmp/log.txt 2>&1 &

暂时挂起程序

在运行程序时,按下ctrl+z可以暂时挂起程序,但不终止。 例如在vi中,可以按下ctrl+z然后在命令行中操作。

jobs 查看目前后台工作状态

jobs [-lrs] -l: 列出job number与命令行之外,还有PID -r:仅列出目前在后台run的工作 -s:仅列出正在后台中暂停的工作 jobs [1] suspended (tty output) nice -n -10 vi [2] suspended (tty output) sudo nice -n -10 vi [3] - suspended top | grep --color=auto 'Balltree' [4] + suspended top | grep --color=auto 'Balltree'

其中,+表示最近被放到后台中工作的号码,-表示最后第二个被放在后台中的工作号码。

fg 将后台工作拿到前台处理

fg %number

默认取出[+]的工作。 number表示工作号码。

bg 让工作在后台下的状态变为运行态

bg %number

运用同上。

管理后台工作,kill

kill -signal %number -l: 列出目前kill能够使用的signal -1:重新读取参数的配置文件(reload) -2:代表由键盘输入ctrl+c同样的操作 -9:立即强制删除一个工作 -15:以正常的程序方式终止一项工作。 -17:以ctrl-z来暂停一个进程的执行

值得注意的是,-9表示的强制删除,不是正常的删除过程,可能有些文件不会被删除。

脱机管理

如果你希望程序在你脱机之后仍然能够正常的运行,则需要将工作放在系统后台工作。nohup可以让你在脱机或注销系统后,还能够正常让国祚继续进行。

nohup [..] # 在终端机前台工作 nohup [...] & # 在终端机后台工作

需要注意的是,nohup不支持bash内置的命令,因此你的命令必须是外部命令,例如运行一段程序等。

test.py

print 'yesy' nohup python test.py &

此时这个python程序会在系统后台中运行。

进程管理

进程管理是非常重要的操作。有一次我在帮别人debug时,发现有一个程序在后台一直运行,因为他能够持续不断地创建一个文件,每当我删除这个文件时,没过一会他又会出现。这时,就需要通过进程管理来找到这个出问题的程序,并将之kill。

ps 进程的查看

ps aux # 查看系统所有进程数据 ps -lA # 查看系统的数据 ps -l # 仅列出bash的程序

S表示这个程序所处的状态 1)R:运行状态 2)S:休眠状态 3)D:不可唤醒的睡眠状态 4)T:终止状态 5)Z:僵尸状态 CMD:该程序的实际命令,最能直接显示该进程的意图。

top 动态查看进程的变化

-d:后面接秒数,表示进程界面更新的秒数。 -p:指定某些歌PID来进行检测

查看某个进程的使用内存也可以使用top。

top -l 1 | grep 'zsh'

pstree 描述进程树

通过pstree能够很快地找到进程的父进程和子进程。

pstree | grep 'zsh' |--= 04745 yanzexin /bin/zsh ./script.sh | | \-+= 57913 yanzexin -zsh | | \--- 62271 yanzexin grep --color=auto zsh | | \--= 61334 yanzexin -zsh | | \--= 60544 yanzexin -zsh | \--= 61954 yanzexin -zsh

进程执行的优先级

进程执行的优先级是由PRI来决定的。PRI越小,优先级越高。但用户是无法直接修改PRI的,只能改变NI。系统会自动根据目前系统状态来决定如何修改程序的PRI。

newPRI = oldPRI + NI

父进程的NI和子进程的NI是相同的。

nice 可以用于修改程序的NI

nice -n -5 vi & ps -l

当我们需要进行备份工作,由于备份工作需要消耗很大的系统资源,所以此时我们希望增大程序的NI值,从而减小程序的优先级。

具体的描述见

man nice
转载请注明原文地址: https://www.6miu.com/read-51842.html

最新回复(0)