http://www.cnblogs.com/xuxm2007/archive/2011/07/29/2121280.html
1.让init进程成为新产生进程的父进程:即fork并使父进程立即退出
2.调用setsid函数:使得新创建的进程脱离控制终端,同时创建新的进程组,并成为该进程组的首进程
进程组、会话的概念。进程会被所在的进程组、会话(控制终端)影响。例如影响之一:在会话1中执行top &,之后在会话2是可以ps到的,但如果关闭会话1,则这个进程也会退出。
3.更改当前工作目录:
使用fork函数产生的子进程将继承父进程的当前工作目录。当进程没有结束时,其工作目录是不能被卸载的。
为了防止这种问题发生,守护进程一般会将其工作目录更改到根目录下(/目录)。更改工作目录使用的函数是chdir。
4.关闭文件描述符,并重定向标准输入、输出和错误输出
守护进程是运行在系统后台的,不应该在终端有任何的输出信息。可以使用dup函数将标准输入、输出和错误输出重定向到/dev/null设备上
5. 设置守护进程的文件权限创建掩码
很多情况下,守护进程会创建一些临时文件。出于安全性的考虑,往往不希望这些文件被别的用户查看。
这时,可以使用umask函数修改文件权限,创建掩码的取值,以满足守护进程的要求。
daemon的作用就是:1、当参数nochdir为0时,将根目录修改为工作目录,2、noclose为0时,做输入,输出以及错误输出重定向到/dev/null
但是因为不同平台兼容性不好且功能有限,一般不直接使用,而是自己实现。例如redis中自己实现了daemonize()。
相关推荐
### Linux守护进程的编程方法详解 #### 一、守护进程及其特性 守护进程(Daemon)是一种特殊的进程,它运行在后台,独立于控制终端,并且周期性地执行特定任务或等待处理某些事件。Linux系统中许多重要的服务都是...
### Linux守护进程(Daemons):编程方法与源码实例解析 #### 一、守护进程的概念与作用 在Linux系统中,守护进程(Daemons)是一类在后台运行且无控制终端的进程,它们通常在系统启动时由init程序启动,并在系统...
Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux...
linux守护进程程序模板带详细注释 守护进程日志 不能被多次运行 详细解释:https://i-beta.cnblogs.com/posts/edit;postId=12095412
编写 Linux 守护进程 Linux/Unix 守护进程是指在后台运行的进程,不与控制终端交互,独立于控制终端的输入/输出操作。编写 Linux 守护进程需要了解多个概念,如子进程、进程组、会晤期、信号机制、文件、目录和控制...
Linux守护进程是Linux系统中的一种特殊进程,它们在系统启动后独立运行,通常与用户的交互较少,负责执行长期持续的任务,如网络服务、系统监控、定时任务等。这些守护进程在后台持续工作,确保系统的正常运行和服务...
该文档说明在linux下实现守护进程,代码简单易懂,思路清楚。
《编写Linux守护进程》这篇文献主要探讨了如何在Linux操作系统中创建和管理守护进程,这是一种在后台运行且独立于控制终端的进程,常用于提供系统服务,如HTTP服务器、打印服务等。守护进程的主要特点包括: 1. **...
### Linux守护进程的研究 #### 摘要与背景 本文主要探讨了Linux系统下的守护进程(Daemons)的概念、特点及其启动方式,并给出了一个具体的C语言实现案例。守护进程是Linux系统中非常重要的一种进程类型,它运行在...
"xxxx.rar_linux 守护_linux 守护进程"这个压缩包文件可能是提供关于如何创建和管理Linux守护进程的教程或指南。 守护进程的重要性在于它们可以独立于用户会话存在,不受用户登录和注销的影响,确保系统服务的持续...
Linux守护进程,或称为守护程序或精灵进程,是Linux操作系统中的关键组成部分,它们在后台运行,没有控制终端,且通常以超级用户权限运行。守护进程的主要任务是提供系统服务,如网络服务(如HTTP服务器httpd)、...
在Linux系统中,守护进程(daemon)是一种在后台运行且没有控制终端的程序,它们通常用于提供持续的服务,如Web服务器、数据库服务等。要使一个守护进程在系统启动时自动启动,需要将其配置为系统服务,并将其添加到...
Linux守护进程是运行在Linux系统后台的进程,它们不依赖于用户的登录,而是作为一种服务存在,通常执行系统管理或提供网络服务等功能。Linux守护进程的主要特点包括自动运行、常驻内存、无用户界面和独立于控制终端...
.NET Core 3.0 WebApi 创建 Linux 守护进程的方法 在 Linux 服务器上,直接使用 dotnet <app_assembly.dll> 命令来运行 .NET Core WebApi 应用程序可能会导致应用程序不稳定,关闭终端窗口后应用程序也会停止运行。...
在IT行业中,守护进程...总的来说,通过`serverd.c`和`client1.c`这两个示例,我们可以深入理解Linux守护进程的创建和Socket通信的基本原理,这对于理解网络服务的底层运作和开发自己的服务程序是非常有价值的。
Linux守护进程是操作系统中的一个重要概念,它是一种在后台运行,独立于任何控制终端,并且通常执行特定服务或任务的进程。守护进程在Linux系统中扮演着服务器的角色,例如inetd、httpd等,用于提供网络服务,还有像...
Linux守护进程启动进程健康监测进程 文件名:start.sh 参数说明: # 应用名(查进程关键字): APP_NAME=smart_school-boot # 应用端口(健康监测用): APP_PORT=17206 # 应用健康检查URL(健康检查):...