Linux 进程管理

来源:互联网 发布:excel数据统计图 编辑:程序博客网 时间:2024/06/05 13:24

当linux执行命令时,它会将有关的权限`属性`程序代码与数据等加载到内存,然后加上进程标识符PID

1.针对一个shell,我们可以吧前台foreground丢到后台background执行用&

cp file1 file2 &

此时此进程会在后台执行,并把执行结果在完成时返回前台,我们就可以在一个shell执行其他命令了。我们可以用

jobs [lrs] 来查看工作情况.ctrl z 来将job丢到后台,并为暂停状态fg %jobnum 来执行后台程序

常说的杀掉进程 kill -signal %jobnum ,比如%1代表工作号为1 的进程,这个进程为放到后台的进程。kill默认后边加的参数pid,所以要杀掉后台的进程需要加上%(我们加&的进程)

kill -l 可以查看可用的singnal,可以用 man 7 signal 命令去查看更详细的命令。

2.  脱机管理,ctrl c 是不能够将&后台运行进程停止。

当你想要你的程序在你注销一个用户后继续执行可以用 

nohup 命令+参数   nohub不支持bash内置命令

此时,你执行的命令已经和你的shell 没有关系,每当我们关掉一个shell,我们会发现在那个shell执行的命令都会终止,而nohup的命令使你的程序和你的shell脱离独立运行。

3. 查看进程

a代表不与teminal(shell)有关的进程,A代表所有进程,u代表有效用户,l 详细信息,j工作格式,f完整的输出

ps -l 

只列出当前登录的pid和他的信息,其中

F 代表进程的flag :4代表root,1代表此进程可以fork但不可以执行;

S (STAT)进程状态: R,running    S ,sleep    T ,stop     Z,zombie(僵尸进程,由于故障存在于内存,但有删除不了,只能reboot)  D,不可被唤醒的状态

ps aux

查看系统内所有的进程。ps aux|grep 用来查看特定进程

ps -lA 显示出所有内容ps axjf 列出类似进程树top -d  5 以5秒为间隔动态查看进程状态pstree 进程树

4.进程操作

要想操作进程,只需要给进程一个signal就行了。man 7 signal 查看详情。

kill  -signal  PID

killall -signal processName

看到以上两个命令的区别了吧,kill 加的是id ,killall 加的是名字。

针对kill all-i 交互式删除-e exact 一致和要删命令(进程)的名字-I 忽略大小写

例子

killall -i syslogdkillall -9 httpd //强制删除所有以httpd启动的进程killall -i -9 bash // 交互删除



0 0