博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mac系统的launchd、守护进程daemon(2013笔记整理)
阅读量:4981 次
发布时间:2019-06-12

本文共 1655 字,大约阅读时间需要 5 分钟。

1. launchd

Mac系统下通用的进程管理器,是Mac系统下非常重要的一个进程,一般来说该进程不允许直接以命令行的形式调用。只能通过其控制管理界面,launchctl来进行控制。

launchd主要功能是进程管理。可以理解成是一个常驻在后台的进程,根据用户的配置,来响应特定的系统事件。launchd既可以用于系统级别的服务,又可以用于个人用户级别的服务。

2. 在launchd的语境中,常驻进程有两种:

daemon 	# 也就是我们常说的守护进程,这种一般对所有用户都有相同的行为,响应相同的事件,始终运行于后台,没有前台交互界面。agent 	# 这种是用户级别的服务进程,一般以用户的身份运行。

3. 守护进程(daemon)

是指在UNIX或其他多任务操作系统中在后台执行的电脑程序,并不会接受电脑用户的直接操控。此类程序会被以进程的形式初始化。守护进程程序的名称通常以字母“d”结尾:例如,syslogd就是指管理系统日志的守护进程。
通常,守护进程没有任何存在的父进程(即PID=1),且在UNIX系统进程层级中直接位于init之下。守护进程程序通常通过如下方法使自己成为守护进程:对一个子进程调用fork,然后使其父进程立即终止,使得这个子进程能在init下运行。这种方法通常被称为“脱壳”。
系统通常在启动时一同起动守护进程。守护进程为对网络请求,硬件活动等进行响应,或其他通过某些任务对其他应用程序的请求进行回应提供支持。守护进程也能够对硬件进行配置(如在某些Linux系统上的devfsd),运行计划任务(例如cron),以及运行其他任务。
在DOS环境中,此类应用程序被称为驻留程序(TSR)。在Windows系统中,由称为Windows服务的应用程序来履行守护进程的职责。
在原本的Mac OS系统中,此类应用程序被称为“extensions”。而作为Unix-like的 Mac OS X有守护进程。(在Mac OS X中也有“服务”,但他们与Windows中类似的程序在概念上完全不相同。)

4. Mac的守护进程目录有以下几处:

~/Library/LaunchAgents 	# 用户的进程/Library/LaunchAgents 	# 管理员设置的用户进程/Library/LaunchDaemons 	# 管理员提供的系统守护进程/System/Library/LaunchAgents 	# Mac操作系统提供的用户进程/System/Library/LaunchDaemons 	# Mac操作系统提供的系统守护进程

另:/Library/StartupItems 这个目录下也有可能存在开机启动项目的配置

以上是launchd的相关配置的存放目录,可以看到,一般我们个人编写的守护进程,都应该放到~/Library/LaunchAgents目录里面。

5. 举个例子,我以Jenkins为例来讲。

MacOSX系统下,守护进程文件都是存在Library文件夹,用户相关的Library可能存在于以下三处:

/System/Library/Library$HOME/Library

上面3处均有可能存在jenkins的守护进程文件(xxx.plist)。根据上面讲的几处守护进程的目录,找到jenkins的启动配置文件是/Library/LaunchDaemons/org.jenkins-ci.plist。

另外,查的过程中我还发现jenkins的uninstall脚本存放于'/Library/Application \Support/Jenkins/'下,Uninstall.command和jenkins-runner.sh。我想一些其他通过dmg或者pkg安装的app也是如此,要卸载的话,依次从上头的几个目录中删除配置文件即可。
参考资料: 
 

 

转载于:https://www.cnblogs.com/timelyxyz/p/3586136.html

你可能感兴趣的文章
PHP函数 ------ ctype_alnum
查看>>
HDU 1102 Constructing Roads
查看>>
多线程之ThreadLocal类
查看>>
OC语言description方法和sel
查看>>
C#中得到程序当前工作目录和执行目录的五种方法
查看>>
python 迭代器与生成器
查看>>
[django]form的content-type(mime)
查看>>
仿面包旅行个人中心下拉顶部背景放大高斯模糊效果
查看>>
C# 小叙 Encoding (二)
查看>>
CSS自学笔记(14):CSS3动画效果
查看>>
项目应用1
查看>>
基本SCTP套接字编程常用函数
查看>>
C 编译程序步骤
查看>>
[Git] 005 初识 Git 与 GitHub 之分支
查看>>
【自定义异常】
查看>>
pip install 后 importError no module named "*"
查看>>
springmvc跳转方式
查看>>
IOS 第三方管理库管理 CocoaPods
查看>>
背景色渐变(兼容各浏览器)
查看>>
iOS 电话在后台运行时,我的启动图片被压缩
查看>>