前言

Linux中进程间通信又称为IPC(Inter process communication),大致上可以分为这么几类:消息队列(message queue),旗语(semerpore),共享内存(shared memory),信号(signal),Unix域套接字,socket等。

一、信号发送

signal用来向进程传递微小的信息。

显示可用信号:kill -l

man 7 signal

1.kill命令

格式:kill [-SIGNAL] PID

SIGNAL:(1) 信号的完整名称,例如SIGHUP、SIGINT、SIGKILL、SIGTERM、SIGCONT、SIGSTOP

(2) 信号简称:HUP、KILL

(3) 信号数据标识:1,2, ...

SIGHUP:1, 让进程重读配置文件中的信息,而无须重启进程;

SIGINT:2, interrupt,打断正在运行中进程;相当于Ctrl+c

SIGKILL: 9, 强行中止正在运行的进程

SIGTERM:15, 优雅关闭正在运行的进程 SIGSTOP:19, 暂停进程

SIGCONT: 18,继续暂停进程

实例:[root@young ~]# ps aux|grep httpd

root      56893  1.0  0.1 226128  5056 ?        Ss   21:47   0:00 /usr/sbin/httpd -DFOREGROUND

apache    56894  0.0  0.1 228212  3120 ?        S    21:47   0:00 /usr/sbin/httpd -DFOREGROUND

apache    56895  0.0  0.1 228212  3120 ?        S    21:47   0:00 /usr/sbin/httpd -DFOREGROUND

apache    56896  0.0  0.1 228212  3120 ?        S    21:47   0:00 /usr/sbin/httpd -DFOREGROUND

apache    56897  0.0  0.1 228212  3120 ?        S    21:47   0:00 /usr/sbin/httpd -DFOREGROUND

apache    56898  0.0  0.1 228212  3120 ?        S    21:47   0:00 /usr/sbin/httpd -DFOREGROUND

root      56966  0.0  0.0 112644   948 pts/0    R+   21:47   0:00 grep --color=auto httpd

[root@young ~]# kill -1 56893 #让httpd重读其配置文件

2.killall命令

按命令名字发送信号。

格式:killall [-SIGNAL] COMMAND

实例:[root@young ~]# killall -15 httpd

[root@young ~]# ps aux|grep httpd

root      61513  0.0  0.0 112644   952 pts/0    R+   21:55   0:00 grep --color=auto httpd

[root@young ~]#

3.pkill命令

pkill 和killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉。

格式:pkill [options] pattern

常用选项:-SIGNAL

-u uid: effective user,生效者

-U uid: real user,真正发起运行命令者

-t terminal: 与指定终端相关的进程

-P pid: 显示父进程为此处指定的进程的进程列表

实例:[root@young ~]# pkill httpd

[root@CentOS ~]# pkill -U apache

二、Linux作业控制

1.系统job作业

(1)job种类:前台作业(foregroud):通过终端启动,且启动后会一直占据终端;

后台作业(backgroud):可以通过终端启动,但启动后即转入后台运行(释放终端);

(2)让作业运行于后台

1) 运行中的作业:Ctrl+z

送往后台后,作业会转为停止态;相当于发送kill -19信号

2) 尚未启动的作业:# COMMAND &

此类作业虽然被送往后台,但其依然与终端相关;如果希望把送往后台的作业剥离与终端的关系:# nohup COMMAND &

实例:[root@CentOS ~]# nohup yes &

[1] 8444

[root@CentOS ~]# nohup: ignoring input and appending output to `nohup.out'

(3)查看所有的作业:#jobs命令

实例:[root@young ~]# jobs -l  # -l选项显示进程PID

[1]+ 23602 Running                 nohup yes &

+/- 表示优先级;当调用时不加作业号会默认调用+的命令[root@young ~]# jobs -l

[1]  79973 Running                 sleep 100 &

[2]  80066 Running                 sleep 200 &

[3]- 80255 Running                 sleep 300 &

[4]+ 80414 Running                 sleep 400 &

[root@young ~]# fg

sleep 400

(4)可实现作业控制的常用命令:#fg  [[%]JOB_NUM]:把指定的作业调回前台;

#bg  [[%]JOB_NUM]:让送往后台的作业在后台继续运行;

#kill  %JOB_NUM:终止指定的作业;

实例:[root@young ~]# sleep 100 &

[1] 72535

[root@young ~]# fg 1

sleep 100

^Z     #crtl+z放到后台挂起

[1]+  Stopped                 sleep 100

[root@young ~]# jobs -l

[1]+ 72535 Stopped                 sleep 100

[root@young ~]# bg %1

[1]+ sleep 100 &

[root@young ~]# jobs

[1]+  Running                 sleep 100 &

[root@young ~]# kill %1

[root@young ~]# jobs

[1]+  Terminated              sleep 100

小贴士:同时运行多个进程方法(提高效率)1)vi all.sh

f1.sh&

f2.sh&

f3.sh&

2)(f1.sh&);(f2.sh&);(f3.sh&)

3){ f1.sh& f2.sh& f3.sh& }

三、进程优先级调整:nice, renice

静态优先级:100-139

进程默认启动时的nice值为0,优先级为120

只有root用户才能降低nice值(提高优先性),普通用户只能提高自己的nice值(降低优先级)

一般使用者仅可调整自己程序的 Nice 值,且范围仅为 0 ~ 19 (避免一般用户抢占系统资源);

nice调整范围: -20, 19

注:值越低优先级越高

(1) 以指定的nice值启动一个进程:nice -n # COMMAND

实例:[root@young ~]# nice -n -16 top&

[root@young ~]# ps axo ni,comm|grep top

-16 top

(2) 调整运行中的进程的nice值:renice -n # PID

实例:[root@young ~]# renice -n 10 89822

89822 (process ID) old priority -16, new priority 10

[root@young ~]# ps axo ni,comm|grep top

10 top

注意:普通用户仅有权限调大nice值;

linux普通用户发送信号,Linux信号发送与作业控制相关推荐

  1. linux更改用户的shell,Linux下通过shell更改用户密码

    echo "root:admin" | chpasswd root的密码改为admin pwconv 同步到shadow文件 newusers和chpasswd的用法 日期:200 ...

  2. linux普通用户命令权限,Linux普通用户没有权限使用命令怎么办

    摘要 腾兴网为您分享:Linux普通用户没有权限使用命令怎么办,智能互联,智慧大学,微商助手,豌豆荚等软件知识,以及高考倒计时器,京东拼购app,单田芳评书打包,小米手机管家,离线小说,批量压缩图片大 ...

  3. linux改用户密码chpasswd,Linux chpasswd (批量或单一修改用户密码)和passwd(直接修改用户密码)...

    Linux命令:chpasswd 批量或者单一修改用户密码 语法: 1:# echo 用户名:密码 | chpasswd 2:# chpasswd < doiido.txt 实例 1.直接修改d ...

  4. Linux虚拟用户怎么建立,linux下ftp虚拟用户的创建方法

    本文介绍下,在linux系统中,为ftp创建虚拟用户的方法,这里使用vsftpd作为服务器软件,有需要的朋友参考学习下. vsftpd虚拟用户创建示例 Linux的FTP服务支持3种用户: 1.匿名帐 ...

  5. linux普通用户时间乱码,Linux root用户与普通用户时间不一致

    造成这种原因有多种,可能是安装软件时选的时区不是本国时间等等. 今天检查了root用户和oracle及grid用户的时间不一样,幸好数据库还没有正式应用,不然可能会造成时间差影响. 现在将同步的方法步 ...

  6. edu-【Linux 与 Python编程2021】Linux知识训练,Linux之用户管理,Linux文件/目录管理

    python实训 python学习 – 菜鸟教程+B站视频 文章目录 linux知识训练-硬件与软件安装 第1关:linux知识训练-硬件与软件安装 linux知识训练-账户进程与权限 第1关:lin ...

  7. linux添加用户user1命令,Linux添加用户命令useradd

    简单讲述下Linux添加用户命令useradd的使用方法. 1.用户添加命令useradd [root@localhost user1]# useradd [选项] 用户名 选项: -u UID:手工 ...

  8. linux新建用户和权限,linux 新建用户和权限分配

    1.创建新用户:testuser 命令:#useradd 选项 用户名 选项: -c comment 指定一段注释性描述. -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主 ...

  9. linux更改用户登录密码,Linux更改用户密码

    环境 RedHat Linux 9 + VWWare 7.1.2 + Putty 0.62 问题 Linux更改用户密码 解决 方法一 1.如果你是以普通用户登录的话,修改自己的密码,使用passwd ...

  10. linux中 用户管理命令,Linux中的常用用户和用户组管理命令

    who:查看当前服务器所有正在登陆中的用户,显示tty表示本地登录,pts表示远程终端.这个命名只能显示简单的登录信息,如果想要查看更为详细的登录信息,使用w命令. w命令除了显示who命令的内容外, ...

最新文章

  1. Mac-sublime text 3破解版
  2. 沙雕记(1) 之 Land Grab
  3. 彻底理解Spring AOP
  4. 函数 —— fork()分叉函数
  5. 大话PM|产品设计中常被忽视的业务异常
  6. 如何应付表数据过大的查询问题?(如何尽量避免大表关联)[转]
  7. phoenix kerberos 连接配置
  8. SQLSERVER锁知识
  9. 通过JConsole查看本地远程虚拟机
  10. python 复制文件_10 行 Python 代码写 1 个 USB 病毒
  11. SSM框架整合(以黑马程序员2022最新SSM框架教程P59为例)
  12. 宝藏又小众的覆盖物PBR多通道贴图素材网站分享
  13. 投资、投机、赌博、交易
  14. 7.2.2我们天赋与经验的局限2
  15. 龙芯Fedora21平台制作feodra21-loongson-app docker镜像
  16. 又一批大学!考研成绩延期公布!
  17. HR人力资源系统管理源码
  18. 铂德发布换弹型电子烟新琥珀,3.5ml超大容量创行业纪录
  19. XCKU5P-2FFVB676E 赛灵思FPGA可编程逻辑芯片器件 XILINX
  20. ubuntu 18.04,20.04 都能用,安装python3.9.4 + pip21.1.1(亲测新版python3.9.7+pip21.2.3也可以用)

热门文章

  1. 前端学习(3223):总结props
  2. 前端学习(3106):react-hello-jsx小练习
  3. [html] html如何启动本地的exe应用?
  4. 前端学习(2558):单文件组件
  5. 前端学习(1738):前端调试值之快速切换pc和手机端
  6. 第一百一十六期:不能错过!你必须知道的3种重要Python技能
  7. 第七十四期:从bug看11种编程语言演化史,果然如今Python比较流行
  8. 第十五期:详解Java集合框架,让你全面掌握!
  9. 安装python要注意什么_安装python注意事项
  10. SpringBoot学习笔记(9)----SpringBoot中使用关系型数据库以及事务处理