创建守护进程的属性文件

2024-08-23 16:32
文章标签 创建 进程 属性 守护

本文主要是介绍创建守护进程的属性文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一章说了人员和添加和删除守护进程,这章简单说说如何创建一个守护进程文件

守护进程文件是一个字典,苹果提供了key值(相关的key值,可以参考文档https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html#//apple_ref/doc/man/5/launchd.plist,有详细说明)我们只需要设置value就可以了,

常用的属性值

Label:

This required key uniquely identifies the job to launchd. 例如你的应用程序bundleID  com.yourname.appname

KeepAlive:

This optional key is used to control whether your job is to be kept continuously running or to letdemand and conditions control the invocation. The default is false and therefore only demand will startthe job. The value may be set to true to unconditionally keep the job alive. Alternatively, a dictio-nary dictionarynary of conditions may be specified to selectively control whether launchd keeps a job alive or not. Ifmultiple keys are provided, launchd ORs them, thus providing maximum flexibility to the job to refinethe logic and stall if necessary. If launchd finds no reason to restart the job, it falls back ondemand based invocation.  Jobs that exit quickly and frequently when configured to be kept alive willbe throttled to converve system resources.
这个属性指明启动程序后是否一直保持在后台,属性为BOOL值,设为NO,就可以在开机启动一次,然后就会自己退出

Program:

This key maps to the first argument of execvp(3).  If this key is missing, then the first element ofthe array of strings provided to the ProgramArguments will be used instead.  This key is required inthe absence of the ProgramArguments key. 这个就是你应用程序的路径,指向包中的可执行文件 例如:~/Desktop/appName/Contents/MacOS/appName
LaunchOnlyOnce:
This optional key specifies whether the job can only be run once and only once.  In other words, if thejob cannot be safely respawned without a full machine reboot, then set this key to be true.
设置了该值为YES,则只执行一次,只有在完全重新启动一次才会再执行。
苹果给的一个简单例子:
    <dict><key>Label</key><string>com.example.exampled</string><key>ProgramArguments</key><array><string>exampled</string></array><key>KeepAlive</key><true/></dict></plist>

相关的属性值介绍:https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html#//apple_ref/doc/man/5/launchd.plist


这样我们就可以自己创建一个简单的守护进程了。


更多详细信息,可以阅读苹果的官方文档:https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html#//apple_ref/doc/uid/10000172i-SW7-BCIEDDBJ

这篇关于创建守护进程的属性文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1099910

相关文章

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

python多进程实现数据共享的示例代码

《python多进程实现数据共享的示例代码》本文介绍了Python中多进程实现数据共享的方法,包括使用multiprocessing模块和manager模块这两种方法,具有一定的参考价值,感兴趣的可以... 目录背景进程、进程创建进程间通信 进程间共享数据共享list实践背景 安卓ui自动化框架,使用的是

使用SpringBoot创建一个RESTful API的详细步骤

《使用SpringBoot创建一个RESTfulAPI的详细步骤》使用Java的SpringBoot创建RESTfulAPI可以满足多种开发场景,它提供了快速开发、易于配置、可扩展、可维护的优点,尤... 目录一、创建 Spring Boot 项目二、创建控制器类(Controller Class)三、运行

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

手把手教你idea中创建一个javaweb(webapp)项目详细图文教程

《手把手教你idea中创建一个javaweb(webapp)项目详细图文教程》:本文主要介绍如何使用IntelliJIDEA创建一个Maven项目,并配置Tomcat服务器进行运行,过程包括创建... 1.启动idea2.创建项目模板点击项目-新建项目-选择maven,显示如下页面输入项目名称,选择

C#如何优雅地取消进程的执行之Cancellation详解

《C#如何优雅地取消进程的执行之Cancellation详解》本文介绍了.NET框架中的取消协作模型,包括CancellationToken的使用、取消请求的发送和接收、以及如何处理取消事件... 目录概述与取消线程相关的类型代码举例操作取消vs对象取消监听并响应取消请求轮询监听通过回调注册进行监听使用Wa

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal