iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux下/var/run/目录下的pid文件有什么用
  • 699
分享到

Linux下/var/run/目录下的pid文件有什么用

2023-06-09 14:06:50 699人浏览 安东尼
摘要

这篇文章主要介绍了linux下/var/run/目录下的pid文件有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先给大家介绍下Linux下/var/run/目录下的p

这篇文章主要介绍了linux下/var/run/目录下的pid文件有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

先给大家介绍下Linux下/var/run/目录下的pid文件,具体详解如下所示:

linux系统中/var/run/目录下的*.pid文件是一个文本文件,其内容只有一行,即某个进程的PID。.pid文件的作用是防止进程启动多个副本,只有获得特定pid文件(固定路径和文件名)的写入权限(F_WRLCK)的进程才能正常启动并将自身的进程PID写入该文件,其它同一程序的多余进程则自动退出。

编程实现:

 调用fcntl()系统调用设置指定的pid文件为F_WRLCK状态,如果锁成功则写入当前进程的PID,进程继续往下执行;如果上锁失败则说明已经有同样的进程在运行了,当前进程退出。

#define PID_FILE "/var/run/xxxx.pid"int lock_file(int fd){  struct flock fl;  fl.l_type = F_WRLCK;  fl.l_start = 0;  fl.l_whence = SEEK_SET;  fl.l_len = 0;  return (fcntl(fd, F_SETLK, &fl));}int alone_runnind(void){  int fd;  char buf[16];  fd = open(PID_FILE, O_RDWR | O_CREAT, 0666);  if (fd < 0)  {    perror("open");    exit(1);  }  if (lock_file(fd) < 0)  {    if (errno == EACCESS || errno == EAGaiN)    {      close(fd);      printf("alone runnind\n");      return -1;    }    printf("can't lock %s: %s\n", PID_FILE, strerror(errno));  }  ftruncate(fd, 0);  //设置文件的大小为0  sprintf(buf, "%ld", (long)getpid());  write(fd, buf, strlen(buf) + 1);  return 0;}

需要注意:

程退出后该进程加的锁自动失效;
2.进程关闭了该文件描述符fd,则加的锁失效。(所以整个进程生命周期内不能关闭该fd);
3.锁的状态不会被子进程继承,如果进程关闭则失效而不管子进程是否运行。

下面介绍下Linux下/var/run目录下的pid文件作用

在Linux系统的目录/var/run下面一般我们都会看到很多的*.pid文件。而且往往新安装的程序在运行后也会在/var/run目录下面产生自己的pid文件。那么这些pid文件有什么作用呢?它的内容又是什么呢?

(1) pid文件的内容:pid文件为文本文件,内容只有一行, 记录了该进程的ID。

用cat命令可以看到。

(2) pid文件的作用:防止进程启动多个副本。只有获得pid文件(固定路径固定文件名)写入权限(F_WRLCK)的进程才能正常启动并把自身的PID写入该文件中。其它同一个程序的多余进程则自动退出。

(3) 编程技巧:

调用fcntl设置pid文件的锁定F_SETLK状态,其中锁定的标志位F_WRLCK。

如果成功锁定,则写入进程当前PID,进程继续往下执行。

如果锁定不成功,说明已经有同样的进程在运行了,当前进程结束退出。

lock.l_type = F_WRLCK; lock.l_whence = SEEK_SET; if (fcntl(fd, F_SETLK, &lock) < 0){  //锁定不成功, 退出...... }sprintf (buf, "%d\n", (int) pid); pidsize = strlen(buf); if ((tmp = write (fd, buf, pidsize)) != (int)pidsize){  //写入不成功, 退出...... }

 (4) 一些注意事项:

i) 如果进程退出,则该进程加的锁自动失效。
ii) 如果进程关闭了该文件描述符fd, 则加的锁失效。(整个进程运行期间不能关闭此文件描述符)
iii) 锁的状态不会被子进程继承。如果进程关闭则锁失效而不管子进程是否在运行。

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

感谢你能够认真阅读完这篇文章,希望小编分享的“Linux下/var/run/目录下的pid文件有什么用”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网操作系统频道,更多相关知识等着你来学习!

--结束END--

本文标题: Linux下/var/run/目录下的pid文件有什么用

本文链接: https://www.lsjlt.com/news/256394.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux下/var/run/目录下的pid文件有什么用
    这篇文章主要介绍了Linux下/var/run/目录下的pid文件有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先给大家介绍下Linux下/var/run/目录下的p...
    99+
    2023-06-09
  • Linux proc目录下子文件或子文件夹有什么作用
    这篇文章主要介绍“Linux proc目录下子文件或子文件夹有什么作用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux proc目录下子文件或子文件夹有什么作用”文章能帮助大家解决问题。一....
    99+
    2023-07-05
  • linux怎么遍历目录下所有的文件夹
    在Linux中,可以使用以下命令来遍历目录下所有的文件夹: 使用find命令: find /path/to/directory ...
    99+
    2023-10-21
    linux
  • Linux系统下的proc目录有哪些文件
    本篇内容介绍了“Linux系统下的proc目录有哪些文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!/proc/devices文件 这个文...
    99+
    2023-06-12
  • Linux 查看目录下的文件数量
    Linux 查看目录下的文件数量 1 查看当前目录下的文件数量(不包含子目录中的文件)说明: 2 查看当前目录下的文件数量(包含子目录中的文件)3 查看当前目录下的文件夹数量(不包含子目...
    99+
    2023-08-31
    linux 运维 服务器
  • Linux下如何统计目录下文件数量
    这篇文章主要介绍了Linux下如何统计目录下文件数量,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux系统总一切皆为文件,那么如何统计目录下的文件数量呢?统计目录中的文...
    99+
    2023-06-27
  • Linux下如何删除文件目录
    这篇文章主要介绍了Linux下如何删除文件目录的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux下如何删除文件目录文章都会有所收获,下面我们一起来看看吧。使用rmdir删除目录Rmdir命令间成“remo...
    99+
    2023-06-28
  • linux下普通文件和目录文件区别有哪些
    这篇文章给大家分享的是有关linux下普通文件和目录文件区别有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。文件权限一般可认为是0 123 456 789,一共十位: 0:表示该文件的文件类型。Windows...
    99+
    2023-06-12
  • LINUX删除目录下所以文件的方法是什么
    使用命令:rm -rf 目录名/*LINUX删除目录下所以文件时要注意:1.确认目录是否正确:在删除目录下所有文件之前,一定要确认当...
    99+
    2023-06-07
    LINUX删除目录 LINUX
  • Linux下etc目录是什么
    小编给大家分享一下Linux下etc目录是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ETC简介  在“etc/bin”中的“etc”真正代表的是“etce...
    99+
    2023-06-28
  • mysql中bin目录下是什么文件
    mysql中bin目录下包含的文件有:1、mysqld,MySQL数据库服务器的可执行文件,用于启动和运行MySQL数据库服务;2、mysql,MySQL的命令行客户端工具,用于与MySQL服务器进行交互和执行SQL语句;3、mysqlad...
    99+
    2023-07-28
  • Linux下怎么定时删除目录文件
    这篇文章主要介绍了Linux下怎么定时删除目录文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux下怎么定时删除目录文件文章都会有所收获,下面我们一起来看看吧。要实现定时删除某个目录下的所有文件需要用到...
    99+
    2023-06-27
  • Linux如何看目录下的文件大小
    使用 ls 命令可以列出目录下的文件和子目录。如果要查看文件大小,可以使用 -l 参数来显示文件的详细信息,包括文件大小。要查看当前...
    99+
    2023-10-18
    Linux
  • Python目录下中没有Script文件
    Python目录中没有Script文件夹,里面是些easy_install相关的内容,直接安装setuptools即可自动生成Script文件夹。 到https://pypi.python.org/pypi/setuptools下载 ez...
    99+
    2023-01-31
    文件 目录下 Python
  • Linux下怎么统计当前文件夹下的文件个数、目录个数
    本篇内容介绍了“Linux下怎么统计当前文件夹下的文件个数、目录个数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1) 统计当前文件夹下文件...
    99+
    2023-06-09
  • 删除目录下所有文件 javascript
    在现代互联网时代,JavaScript已经成为前端开发的核心之一。它可以用来为网站、应用程序和其他在线体验创建动态和交互式体验。对于想要提高自己的JavaScript编程技能的开发人员来说,实现删除目录下所有文件可能是所有初学者都想要尝试的...
    99+
    2023-05-17
  • Linux下如何查找文件或目录
    Linux使用find命令、locate命令、grep命令、whereis命令查找文件或目录。Linux是一种强大的操作系统,它提供了许多功能丰富的工具和命令,用于文件和目录的查找。无论是在个人使用还是在服务器管理中,查找文件或目...
    99+
    2023-07-31
  • Linux系统下的hosts文件有什么用
    本篇内容介绍了“Linux系统下的hosts文件有什么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!hosts文件hosts &m...
    99+
    2023-06-12
  • Linux系统怎么删除当前目录下所有文件
    本篇文章为大家展示了Linux系统怎么删除当前目录下所有文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在Linux系统如何删除当前目录下的所有文件呢?当提到删除肯定就会想到rm -f *,这是一...
    99+
    2023-06-28
  • java怎么删除目录下所有文件
    可以使用Java的File类来删除目录下的所有文件。以下是一个示例代码:```javaimport java.io.File;pub...
    99+
    2023-09-16
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作