Shell脚本中获取进程ID的方法

 更新时间:2015年03月17日 10:54:58   投稿:junjie  
这篇文章主要介绍了Shell脚本中获取进程ID的方法,我想要知道运行中脚本子shell的进程id,我该如何在shell脚本中得到PID,阅读本文即可找到你想要答案,需要的朋友可以参考下

提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。

当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。

在某些情况下,你也许想要知道运行中的子shell的PID。这个PID信息可以在不同的情况下使用。比如,你可以使用shell脚本的PID在/tmp下创建一个唯一的临时文件。有时侯脚本需要检测所有运行的进程,它可以从进程列表中排除自身的子shell。

在bash中,子shell进程的PID存储在一个特殊的变量‘$$'中。这个变量只读,你不可以在脚本中修改它。比如:

复制代码 代码如下:

#!/bin/bash
echo "PID of this script: $$"

上面的脚本会得到下面的输出:

复制代码 代码如下:

PID of this script: 6583

除了$$, bash shell还会导出其他的只读变量。比如,PPID存储子shell父进程的ID(也就是主shell)。UID存储了执行这个脚本的当前用户ID。比如:

复制代码 代码如下:

#!/bin/bash
 
echo "PID of this script: $$"
echo "PPID of this script: $PPID"
echo "UID of this script: $UID"

输出是:

复制代码 代码如下:

PID of this script: 6686
PPID of this script: 4656
UID of this script: 1000

上面输出中,PID每次执行都会变化。这个因为每次运行都会创建一个新的shell。另一方面,PPID每次都会一样只要你在同一个shell中运行。

对于所有bash内置变量列表,参考man页。

复制代码 代码如下:

$ man bash

相关文章

  • Shell脚本如何逐行处理文本文件

    Shell脚本如何逐行处理文本文件

    这篇文章主要给大家介绍了关于Shell脚本如何逐行处理文本文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • CentOS下mysql定时备份Shell脚本分享

    CentOS下mysql定时备份Shell脚本分享

    这篇文章主要介绍了CentOS下mysql定时备份Shell脚本分享,本文使用的是最简单的方法,需要的朋友可以参考下
    2014-12-12
  • Shell脚本实现自动发送邮件的例子

    Shell脚本实现自动发送邮件的例子

    这篇文章主要介绍了Shell脚本实现自动发送邮件的例子,使用.muttrc文件配合shell脚本实现,需要的朋友可以参考下
    2014-08-08
  • Shell脚本生成Go的程序包的实现步骤

    Shell脚本生成Go的程序包的实现步骤

    通过编写Shell脚本,我们可以大大简化Golang项目的打包和部署流程,本文就来介绍一下Shell脚本生成Go的程序包的实现步骤,感兴趣的可以了解一下
    2024-01-01
  • bash脚本输入密码不回显问题的解决方法

    bash脚本输入密码不回显问题的解决方法

    编写一个bash脚本时,需要用户输入一个密码,方可继续后续流程,但是又要保证用户输入的密码不会被别人看到,因此排除了通过参数将密码传入脚本的方案
    2013-08-08
  • linux 中ls命令详解

    linux 中ls命令详解

    ls命令是linux下最常用的命令。ls命令就是list的缩写。下面通过本文给大家分享linux 中ls命令详解,感兴趣的朋友一起看看吧
    2017-09-09
  • shell写的告警次数控制及恢复示例代码

    shell写的告警次数控制及恢复示例代码

    自己写的一个监控脚本,发现告警短信次数未控制时,垃圾短信N多。经过思考,做了个简单的控制,同一故障只发送二次。之后不再发送。恢复后发送恢复短信
    2013-02-02
  • 使用shell脚本执行hive、sqoop命令的方法

    使用shell脚本执行hive、sqoop命令的方法

    今天小编就为大家分享一篇使用shell脚本执行hive、sqoop命令的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • hive-shell批量命令执行脚本的实现方法

    hive-shell批量命令执行脚本的实现方法

    今天小编就为大家分享一篇hive-shell批量命令执行脚本的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Linux下使用Shell脚本实现进程监控的流程

    Linux下使用Shell脚本实现进程监控的流程

    这篇文章主要介绍了Linux下使用Shell脚本实现进程监控,在 Linux 平台下,shell 脚本监控是一个非常简单、方便的工具,它可以有效的对服务器、进程进行监控,对系统开发以及进程维护人员非常有帮助,需要的朋友可以参考下
    2023-02-02

最新评论