linux进程(二)
信号管理进程
使用kill命令发送信号与进程通信
定义守护进程的角色
结束用户会话的进程
kill,killall,pgrep,pkill
对于进程的正常关闭的理解
正常关闭程序的方法
systemctl stop
kill -15/kill
使用程序自带的关闭方法
[root@localhost ~]# kill -l //列出所有支持的信号
//常见信号列表:
数字信号 信号别名 作用
1 HUP 挂起信号,往往可以让进程重新配置
2 INT 中断信号,起到结束进程的作用,和ctrl+c的作用一样
3 QUIT 让进程退出,结果是进程退出
9 KILL 直接结束进程,不能被进程捕获
15 TERM 进程终止,这是默认信号
18 CONT 被暂停的进程将继续恢复运行
19 STOP 暂停进程
20 TSTP 用户停止请求,作用类似于ctrl+z把进程放到后台并暂停
[root@localhost ~]# ps aux |grep httpd
root 1417 1.0 0.2 224064 5004 ? Ss 14:30 0:00 /usr/sbin/httpd -DFOREGROUND
apache 1418 0.0 0.1 224064 2940 ? S 14:30 0:00 /usr/sbin/httpd -DFOREGROUND
apache 1419 0.0 0.1 224064 2940 ? S 14:30 0:00 /usr/sbin/httpd -DFOREGROUND
apache 1420 0.0 0.1 224064 2940 ? S 14:30 0:00 /usr/sbin/httpd -DFOREGROUND
apache 1421 0.0 0.1 224064 2940 ? S 14:30 0:00 /usr/sbin/httpd -DFOREGROUND
apache 1422 0.0 0.1 224064 2940 ? S 14:30 0:00 /usr/sbin/httpd -DFOREGROUND
使用kill关闭,后面只能接进程id号
kill 1418 //关闭子进程,需要一个一个关
kill 1417 //关闭父进程,一次进行
使用killall关闭,后面只能接进程名
killall httpd
//给vim进程发送信号9,15
//使用远程终端1打开file1
[root@localhost ~]# tty
/dev/pts/0
[root@localhost ~]# vim file1
//使用远程终端1打开file2
[root@localhost ~]# tty
/dev/pts/1
[root@localhost ~]# vim file2
//查看当前pid
[root@localhost ~]# ps aux | grep vim
root 1451 0.2 0.2 149460 5092 pts/1 S+ 14:57 0:00 vim file2
root 1452 0.2 0.2 149460 5088 pts/0 S+ 14:57 0:00 vim file1
//发送15信号
[root@localhost ~]# kill 1451
//发送9信号
[root@localhost ~]# kill -9 1452
//还可以同时给所有vim进程发送信号,模糊匹配,同时给多个进程发送信号
[root@localhost ~]# killall vim
//使用pkill踢出从远程登录到本机的用户,pkill 类似killall
[root@localhost ~]# w
15:21:09 up 1:17, 3 users, load average: 0.00, 0.01, 0.03
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.1.26 14:04 2:45 0.06s 0.06s -bash
root pts/1 10.0.1.26 14:57 2:53 0.00s 0.00s -bash
root pts/2 10.0.1.26 14:57 5.00s 0.03s 0.01s w
//终止ps/0上所有进程,除了bash本身
[root@localhost ~]# pkill -t pts/0
//终止pts/0上所有进程,并且bash也结束(用户被强制退出)
[root@localhost ~]# pkill -9 -t pts/0
//列出oldboy用户的所有进程,-l输出pid
[root@localhost ~]# pgrep -l -u oldboy
1549 sshd
1550 bash
使用pkill关闭进程
关闭某个终端
pkill -u oldboy
pkill -9 -t pts/1
后台进程管理
作业控制是一个命令行功能,允许一个shell实例来运行和管理多个命令。
如果没有作业控制,父进程fork()一个子进程后,将sleeping,直到子进程退出。
使用作业控制,可以选择性暂停,恢复,以及异步运行命令,让shell可以在子进程运行期间返回接收其他命令。
前台进程,后台进程jobs,bs,fg
ctrl+z ,ctrl+c , ctrl+B
[root@localhost ~]# cat hello.sh
while true
do
echo "hello"
sleep 2
done
已知当前运行进程耗时
cmd&
未知当前运行进程耗时
cmd
ctrl+z //暂停放入后台
bg //在后台运行(需要通过jobs查看该进程的序号)
[root@localhost ~]# sleep 3000 & //运行程序(时),让其在后台运行
[3] 1460
[root@localhost ~]# sleep 4000 //^Z ,将前台的程序挂起(暂停)到后台
^Z
[4]+ 已停止 sleep 4000
[root@localhost ~]# ps aux | grep sleep
root 1460 0.0 0.0 107956 616 pts/1 S 16:13 0:00 sleep 3000
root 1461 0.0 0.0 107956 612 pts/1 T 16:13 0:00 sleep 4000
root 1463 0.0 0.0 112728 972 pts/1 R+ 16:14 0:00 grep --color=auto sleep
[root@localhost ~]# jobs
[1] 已停止 vim
[2]- 已停止 vim
[3] 运行中 sleep 3000 &
[4]+ 已停止 sleep 4000
[root@localhost ~]# bg %4 //让作业4在后台运行
[root@localhost ~]# fg %3 //将作业1调回至前台
[root@localhost ~]# kill %3 //kill 1,终止pid为1的进程
[root@localhost ~]# (while :; do date; sleep 2; done) //进程在后台运行,但输出依然在前端
[root@localhost ~]# (while :;do date ;sleep 2 ;done)& >/dev/null &
linux进程(二)的更多相关文章
- linux 进程(二) --- 进程的创建及相关api
一.进程的创建fork()函数 由fork创建的新进程被称为子进程(child process).该函数被调用一次,但返回两次.两次返回的区别是子进程的返回值是0,而父进程的返回值则是 新子进程的进 ...
- [转帖]十二 个经典 Linux 进程管理命令介绍
https://www.cnblogs.com/swordxia/p/4550825.html 接了 http referer 头 没法显示图片 可以去原始blog 里面去查看. 随笔- 109 ...
- Linux进程管理之状态(二)
二.进程的生命周期 进程是一个动态的实体,所以他是有生命的.从创建到消亡,是一个进程的整个生命周期.在这个周期中,进程可能会经历各种不同的状态.一般来说,所有进程都要经历以下的3个状态: 就绪态.指进 ...
- Linux进程管理(二)
目录 Linux进程管理(二) 参考 vmstat命令 top命令 Linux进程管理(二)
- Linux唤醒抢占----Linux进程的管理与调度(二十三)
1. 唤醒抢占 当在try_to_wake_up/wake_up_process和wake_up_new_task中唤醒进程时, 内核使用全局check_preempt_curr看看是否进程可以抢占当 ...
- Linux进程上下文切换过程context_switch详解--Linux进程的管理与调度(二十一)
1 前景回顾 1.1 Linux的调度器组成 2个调度器 可以用两种方法来激活调度 一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU 另一种是通过周期性的机制, 以固定的频率运行, 不时的检测 ...
- linux进程管理(二)
接上[linux进程管理(一)] 终止进程的工具 kill .killall.pkill 终止一个进程或终止一个正在运行的程序,一般是通过 kill .killall.pkill.xkill 等进行. ...
- Linux进程理解与实践(二)僵尸&孤儿进程 和文件共享
孤儿进程与僵尸进程 孤儿进程: 如果父进程先退出,子进程还没退出那么子进程的父进程将变为init进程.(注:任何一个进程都必须有父进程) [cpp] view plaincopy #include & ...
- Linux进程管理及while循环
目录 进程的相关概念 进程查看及管理工具的使用 Linux系统作业控制 调整进程优先级 网络客户端工具 bash之while循环 20.1.进程类型 守护进程 daemon,在系统引导过程中启动的进程 ...
- Linux进程管理
一.进程管理简介 进程是正在执行的程序或命令,每一个进程都是一个运行实体,都有自己的地址空间,并占用一定的系统资源. 进程管理的作用: 1.判断服务器的健康状态 2.查看系统中的所有进程 3.杀死进程 ...
随机推荐
- 51nod 1267:4个数和为0 哈希
1267 4个数和为0 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 给出N个整数,你来判断一下是否能够选出4个数,他们的和为0,可以则输出&qu ...
- 9 react 基础 - 虚拟DOM
一.虚拟DOM React 原理 1. 存放 state 数据 2. JSX 模版 3. 数据 + 模版 生成虚拟DOM(虚拟DOM就是一个JS 对象, 用来描述真实DOM) eg: ['div', ...
- Python笔记_第五篇_Python数据分析基础教程_相关安装和版本查看
1. IDE说明: 所有的案例用Anacoda中的Jupiter工具进行交互式讲解. 2. 版本和安装: NumPy从如下网站安装:http://sourceforge.net/projects/nu ...
- 浅入深出Java输入输出流主线知识梳理
Java把不同类型的输入.输出,这些输入输出有些是在屏幕上.有些是在电脑文件上, 都抽象为流(Stream) 按流的方向,分为输入流与输出流,注意这里的输出输出是相对于程序而言的,如:如对于一个J ...
- 两个exe共享内存数据
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- handler method 参数绑定常用注解
handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类: A.处理requet uri 部分(这里指uri template中variable,不含q ...
- 数组分组(DP)
一个长度为n的数组a,我们可以把它分成任意组,每一组是一段连续的区间. 比如数组1,2,3,4,5可以分成(1,2),(3,4,5)两个组.每个分组都有一个权值,这个权值就是分组里面每个数的乘积对10 ...
- 一维消消乐(DP)
一维消消乐是一款非常简单的游戏.有n颗珠子排成一排,每一颗珠子有一个价值w(可能是负数). 游戏是这样,你可以选择如若干对相邻的珠子,让他们同时消去.每一对珠子的消失,都会使得总分数加上两颗珠子相乘的 ...
- UVALive 3942 字典树+dp
其实主要是想学一下字典树的写法,但这个题目又涉及到了DP:这个题目要求某些单词组成一个长子串的各种组合总数,数据量大,单纯枚举复杂度高,首先肯定是要把各个单词给建成字典树,但是之后该怎么推一时没想到. ...
- LeetCode——155. 最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- 删除栈顶的元素. top() -- 获取栈顶元素. ...