守护进程到底是什么?如何创建?(图文并茂,你不得不看的一篇文章)

举报
笨笨小乌龟 发表于 2024/07/11 14:51:42 2024/07/11
【摘要】 ​目录守护进程(Daemon Process)详解守护进程的特点创建守护进程的步骤 用守护进程实现输入Hello功能守护进程的用途如何查看我们的守护进程?1. ps 命令2. top 命令总结守护进程(Daemon Process)详解守护进程,又称背景进程或系统守护进程,是运行在后台的一种特殊类型的进程。它们通常在系统启动时启动,并在系统关闭时终止。守护进程的主要功能是提供持续运行的服务,...

目录

守护进程(Daemon Process)详解

守护进程的特点

创建守护进程的步骤

 用守护进程实现输入Hello功能

守护进程的用途

如何查看我们的守护进程?

1. ps 命令

2. top 命令

总结



守护进程(Daemon Process)详解

守护进程,又称背景进程或系统守护进程,是运行在后台的一种特殊类型的进程。它们通常在系统启动时启动,并在系统关闭时终止。守护进程的主要功能是提供持续运行的服务,如网络服务、系统日志记录、定时任务执行等,而不与任何终端或用户直接交互。

守护进程的特点

  1. 脱离终端:守护进程在运行时不与任何终端关联,因此它们不能接收来自终端的输入或向终端输出信息。这一特性使得守护进程能够在无人值守的服务器环境中持续运行。

  2. 后台运行:守护进程在后台运行,不占用用户的交互会话,因此不会影响用户的其他操作。

  3. 持久运行:守护进程通常在系统启动时启动,并一直运行直到系统关闭。它们提供不间断的服务,如文件系统监控、网络服务、打印队列管理等。

  4. 资源管理:守护进程需要妥善管理资源,包括文件描述符、内存分配等,以确保系统资源的高效利用和避免泄漏。

  5. 错误处理与日志记录:守护进程需要能够处理运行时可能出现的错误,并将相关信息记录到日志文件中,以便于问题的诊断和追踪。

创建守护进程的步骤

创建一个守护进程通常涉及以下步骤:

  1. 重定向标准文件描述符:将标准输入(stdin)、标准输出(stdout)和标准错误输出(stderr)重定向到/dev/null或日志文件,以避免与终端的交互。

  2. 创建新会话:通过调用setsid()函数创建一个新的会话,使进程成为会话领导者,从而脱离原来的终端。

  3. 改变工作目录:通常将工作目录更改为根目录/,避免因原工作目录被卸载而导致的进程终止。

  4. 文件权限掩码设置:调用umask()设置适当的文件权限掩码,确保守护进程创建的文件具有正确的权限。

  5. 关闭不必要的文件描述符:关闭所有不需要的文件描述符,避免资源泄漏。

  6. 错误处理与日志记录:设置错误处理机制,将错误信息记录到日志文件中,便于后续分析。

编辑

 用守护进程实现输入Hello功能

编辑

守护进程的用途

守护进程广泛应用于各种系统服务中,包括但不限于:

  • 网络服务:如Web服务器(Apache、Nginx)、邮件服务器(Postfix、Sendmail)和数据库服务器(MySQL、PostgreSQL)。
  • 系统管理:如日志记录(syslogd)、定时任务执行(cron)和系统监控(monit)。

如何查看我们的守护进程?

1. ps 命令

ps 命令用于显示当前系统中进程的快照信息。它提供了多种选项来定制输出,以满足不同的需求。

  • 基本用法ps 命令默认显示当前终端的进程信息。
  • 常用选项
    • aux:显示所有用户的所有进程的详细信息,a 表示所有进程,u 表示以用户友好的格式显示,x 表示包括没有控制终端的进程。
    • -ef:显示所有进程的详细信息,类似于 aux,但格式略有不同。
    • -C <command>:显示特定命令的进程信息。
    • -p <pid>:显示指定 PID 的进程信息。
    • -U <username>:显示特定用户的所有进程信息。

编辑

2. top 命令

top 命令提供了一个动态的实时视图,显示系统中最消耗资源的进程。它是一个交互式的工具,允许用户实时监控 CPU、内存使用情况以及进程列表。

  • 基本用法top 命令启动后,会显示一个不断更新的进程列表,按 CPU 使用率排序。
  • 交互式功能
    • 按 P 键按 CPU 使用率排序。
    • 按 M 键按内存使用率排序。
    • 按 N 键按 PID 排序。
    • 按 q 键退出 top

编辑

总结

  • ps 提供了静态的进程信息快照,适用于查看特定时刻的进程状态。
  • top 提供了动态的系统监控,适合实时监控系统资源和进程活动。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。