上周组内技术分享中,有朋友提到了Linux下的kill -0的使用,以前确实没太注意过,这个命令还是有一定作用的。

我们看下man中对kill -0的说明,如果参数是0,不会发送任何的信号,但是仍会执行错误检查,可以用他来检测某个进程ID或进程组ID是否存在,

...

If sig is 0, then no signal is sent, but error checking is still performed.

...

If sig is 0, then no signal is sent, but error checking is still performed; this can be used to check for the existence of a process ID or process group ID.

...

这里要用到的信号为0,并不表示要关闭某个程序,而表示对程序(进程)运行状态进行监控,如果发现进程关闭或其他异常,将返回状态码1,反之,如果发现进程运行正常,将返回状态码0。从理解上看,作用相当于ps.

例如如下指令,可以判断23636的进程是否存在,如果存在,$?返回0,

[oracle@bisal ~]$ kill -0 23636 &>/dev/null; echo "Process Status: $?"
Process Status: 0

如果不存在或者存在异常,$?返回1,

[oracle@bisal ~]$ kill -0 23636 &>/dev/null; echo "Process Status: $?"
Process Status: 1

附录,shell中一些常用的特殊变量,

$$,Shell本身的PID(ProcessID,即脚本运行的当前进程ID号)
$!,Shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)
$?,最后运行的命令的结束代码(返回值)即执行上一个指令的返回值(显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$-,显示shell使用的当前选项,与set命令功能相同
$*,所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数,此选项参数可超过9个。
$@,所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$@ 跟$*类似,但是可以当作数组用
$#,添加到Shell的参数个数
$0,Shell本身的文件名
$1~$n,添加到Shell的各参数值。$1是第1参数、$2是第2

近期更新的文章:

《SpringBoot开发过程中碰到的几个问题》

《见识一下SQL Server隐式转换处理的不同》

《小白学习MySQL - 查询会锁表?》

《误操作怎么办?试试这个神器-Log Miner》

《数据库hang等待链分析利器》

文章分类和索引:

《公众号700篇文章分类和索引》

Linux系统中的kill -0有什么作用?相关推荐

  1. linux中realplayer.rpm格式的软件安装,Linux系统中Realplay 10.0的安装和使用

    一.什么是RealPlay Realplay 在Windows大家经常用,不必介绍:呵... ... 在一两年前,如果说Rlealplay 能在Linux操作系统中正常的运行,有点异想天开:目前看来运 ...

  2. linux中profile文件作用,解析Linux系统中bashrc和profile文件的作用区别

    使用终端ssh登录Linux操作系统的控制台后,会出现一个提示符号(例如:#或~),在这个提示符号之后可以输入命令,Linux根据输入的命令会做回应,这一连串的动作是由一个所谓的Shell来做处理. ...

  3. power linux 安装系统,在Linux系统中安装/使用PowerShell Core 6.0

    在微软爱上 Linux 之后,PowerShell 这个原本只是 Windows 才能使用的组件,于 2016 年 8 月 18 日开源并且成为跨平台软件,登陆了 Linux 和 macOS. Pow ...

  4. Linux 系统中kill命令杀死进程常用技巧

    前言 在Linux的系统中,kill是我们最常见的命令之一. kill,英语中为杀死的意思,顾名思义,就是用来杀死一些东西的命令,在linux中就是用来杀死系统中的进程. 在Windows系统中,如果 ...

  5. linux命令中强杀进程,Linux 系统中kill命令杀死进程常用技巧

    目录 前言 基础 进阶 1 查找进程号的方式进行改进 2 将常规的两步杀死进程合并为一步 3 强制踢掉登陆用户 kill的注意事项 前言 在Linux的系统中,kill是我们最常见的命令之一. kil ...

  6. LINUX系统中进程如何管理控制(一)

    上篇文章详细介绍了LINUX命令程序通过获取SHELL环境中的数据(此处的数据通常称为环境变量)来输出本机相应的配置数据,从而掌握在LINUX中SHELL环境的搭建技巧.那么,今天,这篇文章主要围绕l ...

  7. 用户管理 之 Linux 系统中的超级权限的控制

    作者:北南南北 赞助: eTony,pandonny,懒猫, Arch 来自:LinuxSir.Org 摘要: 超级用户是系统最高权限的拥有者,是系统管理唯一的胜任者:由于权限的超级并且达到无所不能的 ...

  8. linux僵尸进程理解,聊聊Linux系统中的僵尸进程

    车祸现场 今天下午,笔者正在认真搬砖,日志集群中有一台机器忽然报init进程占用100% CPU.strace之,发现疯狂输出如下系统调用. ~ strace -p 1 rt_sigprocmask( ...

  9. Linux 系统中的超级权限的控制

      在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者.普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户.   在系统中,每个文件.目录和进程,都归属于某 ...

最新文章

  1. 百度bae mysql_微信公众号开发第二课 百度BAE搭建和数据库使用
  2. grunt之filerev、usemin
  3. [pytorch、学习] - 3.11 模型选择、欠拟合和过拟合
  4. c++ qt qlistwidget清空_Qt编写控件属性设计器12-用户属性
  5. java文件重命名有趣实验
  6. switch 选择语句
  7. 查看linux上卸载mysql数据库_linux卸载mysql数据库
  8. 2014北京邀请赛 F Football on Table
  9. 黑马乐优商城Java57期
  10. 有用的在线图片处理网站(证件照替换背景蓝色)
  11. 进栈顺序为abcd则出栈顺序为_进栈顺序为ABCDEFG 有可能的出站顺序是什么
  12. 数据结构和算法学习之路-----必要的数学知识
  13. KALI虚拟机挂代理教程
  14. 不要迷恋哥,哥不只是传说(再【转】世界上最牛的程序员)
  15. 自媒体短视频怎么玩?0粉丝也可以变现,5种变现模式
  16. IDM Computer Solutions(UltraEdit V26.10.0.30、UltraCompare V18.10.0.78、UEStudio、UltraFTP==) 全系列最新破解
  17. 原神改文件换服务器,原神B服怎么转成官服
  18. android rom包修改工具,自己修改安卓的ROM包(非官方) | 寒山烟雨
  19. 【ShaderToy】基础篇之谈谈点、线的绘制
  20. opencv 通过标定摄像头测量物体大小_激光三角测量法在工业视觉检测上的应用...

热门文章

  1. 用xmind做读书笔记的几个层次
  2. 希尔排序(c语言实现)
  3. iphone模拟定位_为什么iPhone定位服务比您想象的更有用
  4. mysql 换文件夹_windows下更换MySql数据库数据文件夹位置
  5. 三菱PLC第一篇:GXWORK3与三菱FX5UPLC同通过交换机连接
  6. Beam failure Recovery
  7. 受保护的Hyper-V环境和受保护的虚拟机
  8. 用电脑无线投屏到电视屏幕的连接方法
  9. 不要浪费一场好危机(丘吉尔)
  10. 使用vue+腾讯地图API GL实现地图选房的功能