linux 进程的fg,Linux常用命令之--系统进程(PS,kill)及前后台操作(jobs,fg,bg,nohup)...

进程概述

具有某种选定任务的程序在一个数据集合上的一次具体执行过程

每一个进程都有一个独立的进程号(Process ID,PID),系统通过调用进程号来调度操控进程

系统的原始进程是systemd 。PID总是1,是系统中第一个启动的进程

一个进程可以产生另一个进程。除了systemd 以外,所有的进程都有父进程

查看进程PS

ps [option] 前面不加-的就是不加

• a 显示所有包括所有终端的进程

• x 显示所有包括不连接终端的进程(如守护进程)

• u 显示进程所有者的信息

• p 显示指定进程ID的信息 后面跟PID

• -e 显示所有进程

• -f 显示进程的父进程

因为-e包含-f,所以-e和-f连用分不清哪个是父进程,所以如果想看父进程,就单独用-f

• -l 以长列表的方式显示信息

• -o 属性,… 显示定制的信息(ps -o tty,pid或者是ps -o tty -o pid)这就是显示顺序

• pid、comm、%cpu、%mem、state、tty…

• pstree可以用来以树状的方式表现进程的父子关系

ps的一般用法是ps aux | grep

搜索进程ps aux | grep XXX

按预定的模式:pgrep

• pgrep –U root 查看用户root运行的进程的进程号

• pgrep –G redhat 查看组redhat运行的进程的进程号

按确切的程序名称:pidof

• pidof bash

通过管道来搜索(上面的按预定和按确切程序的不常用)

• ps aux | grep XXX 最重要的

ps aux | grep root

控制进程

kill

用于向指定进程号发送特定信号

语法:kill [-signal]

• kill -l:列出所有可以由kill传递的讯号

• man 7 signal:显示信号的详细列表

• -15,TERM(默认)-整洁终止

默认为15(终结),把这个进程要做的事儿做完再死

• -9,KILL-立即终止

killall

根据进程名来发送选定信号

语法:killall [-signal]

比如我yum安装一个软件包的时候给它通过ctrl+z打断了,如果我再敲同样的命令的时候会有如下的提示,告诉我有安装还没退出,当前安装无法开始。需要等它退出才能继续

Another app is currently holding the yum lock; waiting for it to exit...

The other application is: yum

Memory : 97 M RSS (457 MB VSZ)

Started: Sat Jul 6 13:55:48 2019 - 01:44 ago

State : Traced/Stopped, **pid: 13041**

这时可以通过kill掉这个进程来解决这个问题

ps aux | grep yum 可以看到关于yum的进程,我记住一个进程号,比如为15177,

我通过kill -15 15177 杀不死。但是通过kill -9 15177可以杀死。像yum中断这种,它已经中断了,无法再继续完成它的任务后再被杀死,所以-15是杀不死它的,必须要通过-9

❉killall后面还是加-9或-15。但是killall后面加的不是pid,而是进程名

如果有一个进程A,它依赖于B,那么即使杀死B,A还会重新生成B。但一般都不会平白无故杀死一个进程,都是在一个进程严重占用系统资源的时候杀死它

★killall -9 systemd 执行不了,因为执行这个权限是systemd给的,所以不能杀掉这个进程

前台进程与后台进程

进程描述:

默认情况下,一个命令执行后,此指令将独占shell,并拒绝其他输入。我们称之为前台进程。反之,则称为后台进程。比如qq,最小化以后就是后台状态。前台的不一定是运行的,也可能是僵尸。后台的不代表不是运行的

对每一个终端,都允许多个后台进程

对前台/后台进程的控制与调度,被称为任务控制

将一个前台进程放入后台

• & 将一个进程直接丢入后台,在后台还是在运行的

killall -15能杀死

想让控制台能正常写别的命令行就ctrl+d

• ctrl + z:将一个正在运行的前台进程暂时停止,并丢入后台

killall -15杀不死它,只能用killall -9

前台运行的时候可以通过ctrl+z打断,但后台运行的通过ctrl+z打断不了,只能通过kill给它发送结束信号才能结束

后台进程的控制

• jobs 列出系统作业号和名称

• fg [%作业号] 将后台中的命令调至前台继续运行

• bg [%作业号] 将在后台暂停的命令恢复在后台运行

• kill [%作业号] 给对应的作业发送终止信号

如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程

nohup &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值