Marco Ceppi Asked: 2011-02-16 14:14:32 +0800 CST2011-02-16 14:14:32 +0800 CST 2011-02-16 14:14:32 +0800 CST 什么是守护进程? 772 我听到很多关于在我的 Ubuntu 计算机上运行的守护进程的讨论——它们是什么? services 2 个回答 Voted Best Answer Stefano Palazzo 2011-02-16T14:20:54+08:002011-02-16T14:20:54+08:00 简而言之,守护进程是一个后台进程。 守护进程可以只是在后台运行的普通程序,但是大多数是通过启动一个进程、分叉它并退出父进程来创建的。 分叉一个进程意味着创建它的精确副本。该进程的父进程(如果真正的父进程立即终止)现在是init进程/sbin/init,它是每个类 Unix 操作系统上启动的第一件事。现在,该进程被称为守护进程,它没有与之关联的 TTY。 这是 Python 中的守护进程示例: import sys, os, time pid = os.fork() # there now exist two processes if pid > 0: # If this is the parent, sys.exit(0) # quit. # this is the background part: time.sleep(5) print "Hello, World!" 严格来说,它还不是一个。您还必须更改当前的工作目录,将标准输入和输出更改为日志文件等等。您可以阅读这篇维基百科文章中的血腥细节。 如果您运行该示例,您会注意到两秒钟后它会打印出来,即使您在命令行上启动的进程已经终止。这个过程的副本现在由 init 运行。 Fares Younis 2016-12-21T09:46:25+08:002016-12-21T09:46:25+08:00 在多任务计算机操作系统中,守护进程是作为后台进程运行的计算机程序,而不是在交互式用户的直接控制之下。传统上,守护进程的进程名称以字母 d 结尾,以澄清进程实际上是守护进程,并区分守护进程和普通计算机程序。例如,syslogd 是实现系统日志功能的守护进程,而 sshd 是为传入 SSH 连接提供服务的守护进程。 如您所见,守护进程的层
简而言之,守护进程是一个后台进程。
守护进程可以只是在后台运行的普通程序,但是大多数是通过启动一个进程、分叉它并退出父进程来创建的。
分叉一个进程意味着创建它的精确副本。该进程的父进程(如果真正的父进程立即终止)现在是init进程
/sbin/init
,它是每个类 Unix 操作系统上启动的第一件事。现在,该进程被称为守护进程,它没有与之关联的 TTY。这是 Python 中的守护进程示例:
严格来说,它还不是一个。您还必须更改当前的工作目录,将标准输入和输出更改为日志文件等等。您可以阅读这篇维基百科文章中的血腥细节。
如果您运行该示例,您会注意到两秒钟后它会打印出来,即使您在命令行上启动的进程已经终止。这个过程的副本现在由 init 运行。
如您所见,守护进程的层