MacOS不像 Linux 有 /etc/init.d/rc.local 以及 service 的方式可以设置程序随机启动,而是使用 plist 文件管理。你可以写一个plist文件放到~/Library/Launch Agents/下面,文件里描述你的程序路径和启动参数,那么这个用户登录时就会启动这个程序了,而且是杀不了的哦,被杀了之后会自动重新启动

plist文件分布在:

/System/Library/LaunchDaemons/ (System-wide daemons provided by OS X)

其中 apache的httpd程序启动配置文件 org.apache.httpd.plist 就在这里。

/System/Library/LaunchAgents/ (由Mac OS X为用户定义的任务项)

/Library/LaunchDaemons (由管理员定义的守护进程任务项 )

/Library/LaunchAgents (由管理员为用户定义的任务项 )

如果放到/Library/Launch Agents/下面的话,就是一开机就启动哦~

~/Library/LaunchAgents ( 由用户自己定义的任务项 )

这些配置文件由程序 launchctl 设置是否加载。

launchctl 简介

launchctl 管理 MacOS 的启动脚本,控制启动计算机时需要开启的服务。也可以设置定时执行特定任务的脚本,就像Linux cron一样。

launchctl需要root权限。

launchctl 常用命令

1.显示当前的启动脚本

launchctl list

2.开机时自动启动Apache服务器

sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

3.设置开机启动并立即启动改服务

launchctl load -w **.pist

4. 设置开机启动但不立即启动服务

launchctl load **.pist

5. 停止正在运行的启动脚本

sudo launchctl unload [path/to/script]

6. 再加上-w选项即可去除开机启动

sudo launchctl unload -w [path/to/script]

执行定时脚本|设置开机启动步骤

1.写执行脚本 (通过 brew 安装软件 brew 会为我们自动生成。)

2. 去对应的目录下建立plist文件

3. 加载服务

>1 cd 进入指定 plist 文件目录

>2 launchctl load *.plist #加载

launchctl unload *.plist #取消

>3 launchctl list #查看服务

对服务设置别名方便操作

1. vim ~/.bash_profile #编辑添加如下脚本

2. 命名别名(以 nginx 为例)

>启动:alias nginx.start=’launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist’

>关闭:alias nginx.stop=’launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist’

>重启:alias nginx.restart=’nginx.stop && nginx.start’

注意点

1. 在launchctl list 命令结果中出现的 plist 文件才会有效。

2. Agents文件夹下的plist是需要用户登录后,才会加载的,而Daemons文件夹下得plist是只要开机,可以不用登录就会被加载

launchctl java jar_MacOS launchctl 启动进程控制相关推荐

  1. launchctl 启动进程控制

    MacOS不像 Linux 有 /etc/init.d/rc.local 以及 service 的方式可以设置程序随机启动,而是使用 plist 文件管理.你可以写一个plist文件放到~/Libra ...

  2. Java执行cmd命令启动进程

    Java执行cmd命令启动进程 1.代码 //execute command through java applicationpublic static void exeCmd(){Runtime r ...

  3. java控制进程_⑨进程控制

    什么是进程控制?(实现进程状态转换) 进程控制的主要给你拿是对系统中的所有进程实施有效的管理,它具有创建新进程.撤销已有进程.实现进程状态装换等功能. 思考:如果将一个进程从一个队列放入到另一个队列, ...

  4. java什么时候创建进程,Java创建进程

    Java创建进程 1 进程的概念 1 1.1 进程的概念 1 1.2 进程的特征 1 1.3 进程与线程区别 1 2 进程的创建 1 2.1 JAVA进程的创建 1 2.1.1 ProcessBuil ...

  5. Java虚拟机 和 java虚拟机下的进程

    一.什么是Java虚拟机      当你谈到Java虚拟机时,你可能是指:      1.抽象的Java虚拟机规范      2.一个具体的Java虚拟机实现      3.一个运行的Java虚拟机实 ...

  6. java实现进程管理_用java来实现一个进程管理系统

    展开全部 构造方法摘要 ProcessBuilder(List command) 利用指定的操作系统程序和参数62616964757a686964616fe59b9ee7ad9431333361303 ...

  7. Python 多进程笔记 — 启动进程的方式、守护进程、进程间通信、进程池、进程池之间通信、多进程生产消费模型

    1 面向过程启动多进程 Python 操作进程的类都定义在 multiprocessing 模块,该模块提供了一个 Process 类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另 ...

  8. [单刷APUE系列]第八章——进程控制[1]

    目录 [单刷APUE系列]第一章--Unix基础知识[1] [单刷APUE系列]第一章--Unix基础知识[2] [单刷APUE系列]第二章--Unix标准及实现 [单刷APUE系列]第三章--文件I ...

  9. 【linux草鞋应用编程系列】_2_ 环境变量和进程控制

    一. 环境变量 应用程序在执行的时候,可能需要获取系统的环境变量,从而执行一些相应的操作. 在linux中有两种方法获取环境变量,分述如下. 1.通过main函数的参数获取环境变量 main函数的多种 ...

最新文章

  1. js RegExp用法
  2. C# Levenshtein计算字符串的相似度
  3. 【PAT乙级】1076 Wifi密码 (15 分)
  4. c#(服务器)与java(客户端)通过socket传递对象_C#(服务器)与Java(客户端)通过Socket传递对象...
  5. jQuery笔记总结
  6. c#中重载单目运算符-_C#程序重载二进制运算符(-,*,/)
  7. .NET反射、委托技术与设计模式
  8. php设计模式的作用是什么意思,php设计模式工厂模式有什么作用?
  9. Python除了不会生孩子,什么都会
  10. html5 mask,HTML5 Canvas渐进填充与透明实现图像的Mask效果
  11. Kubernetes NetworkPolicy 工作原理浅析
  12. 考研数学一【高数】 第18讲多元函数积分学
  13. 无痛学习ISAC(二)
  14. 非靶向代谢组学数据分析方法总结
  15. 多个CYUSB3014连接主机时添加序列号
  16. 动作捕捉系统用于机器人关节位移与几何参数标定
  17. 在Ubuntu部署gitblit步骤
  18. OpenCV摄像头-截图
  19. 【项目总结】基于SpringBoot+Ansj分词+正倒排索引的Java文档搜索引擎项目总结
  20. 离线安装.net framework 3.5 安装失败问题(亲测可行)

热门文章

  1. 微信群100人限制解除 群主可继续邀请朋友进群
  2. 当乐app官方下载android,当乐游戏中心下载-当乐游戏中心 安卓版v8.7.9-PC6安卓网...
  3. DataX介绍以及优缺点分析
  4. 【数据结构和算法】入门初识篇
  5. ShardingSphere分库分表方案
  6. 进程和应用程序的区别(简单理解)
  7. 清华大学06届 计算机王煜,祝贺!这两位三年前从超银中学毕业的学霸,今年被清华大学“破格”录取啦...
  8. iOS vs Android苹果将重蹈PC业务覆辙?
  9. 2005免费书记下载- NEW
  10. 【云栖大会】阿里云助力实现“工业互联,云上智造”