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中删除某些文件外所有文件的3个方法

    Shell中删除某些文件外所有文件的3个方法

    这篇文章主要介绍了Shell中删除某些文件外所有文件的3个方法,即在删除文件时保留一些想要的,其它的则删除,需要的朋友可以参考下
    2014-10-10
  • Linux下rm误删除文件的三种恢复方法

    Linux下rm误删除文件的三种恢复方法

    一下午写的程序就被rm掉了,幸好只是一个文件,第二天很快又重新写了一遍。但是很多人可能就不像我这么幸运了,本文收集了一些在Linux下恢复rm删除的文件的方法,需要的朋友可以参考下
    2022-12-12
  • ubuntu 解决libsqlite3-0依赖的问题(推荐)

    ubuntu 解决libsqlite3-0依赖的问题(推荐)

    下面小编就为大家带来一篇ubuntu 解决libsqlite3-0依赖的问题(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Linux复制文件命令cp之使用解说

    Linux复制文件命令cp之使用解说

    Linux下的命令有很多,其中有一个命令,我一直使用都存在问题,那就是cp命令了。今天通过本文给大家介绍Linux复制文件命令cp之使用解说,感兴趣的朋友一起学习吧
    2016-11-11
  • Shell脚本把文件从GBK转为UTF-8编码

    Shell脚本把文件从GBK转为UTF-8编码

    这篇文章主要介绍了Shell脚本把文件从GBK转为UTF-8编码,需要的朋友可以参考下
    2014-06-06
  • 利用perl、python、php、shell、sed、awk、c 实现字符串的翻转

    利用perl、python、php、shell、sed、awk、c 实现字符串的翻转

    今天心血来潮,看到下面的题目后延伸了一下,回顾自己以前学到的一些知识
    2014-04-04
  • Linux设置每晚定时备份Oracle数据表的操作命令

    Linux设置每晚定时备份Oracle数据表的操作命令

    这篇文章主要介绍了Linux设置每晚定时备份Oracle数据表,本文通过脚本命令给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • 详解Shell $*和$@之间的区别

    详解Shell $*和$@之间的区别

    这篇文章主要介绍了详解Shell $*和$@之间的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • shell中函数的应用

    shell中函数的应用

    今天这个脚本其实很简单,但很实用,讲的是shell中函数的应用,需要的朋友可以参考下
    2016-08-08
  • 脚本批量检测网站是否存活

    脚本批量检测网站是否存活

    这篇文章主要介绍了批量检测网站是否存活的脚本,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01

最新评论