MacOS launchctl 启动进程控制

MacOS 不像 Linux 有 /etc/init.d/rc.local 以及 service 的方式可以自动启动。而是使用 plist 文件,文件里描述程序路径和启动参数,用户登录后就会启动这个程序,而且pkill进程以后,程序会自动重启。


plist文件分布在:

/System/Library/LaunchDaemons # 是用户未登陆前就启动的服务(守护进程)
/System/Library/LaunchAgents  # 由Mac OS X为用户定义的任务项
/Library/LaunchDaemons        # 由管理员定义的守护进程任务项
/Library/LaunchAgents         # 由管理员为用户定义的任务项
~/Library/LaunchAgents        # 由用户自己定义的任务项


launchctl 常用命令

1.显示当前的启动脚本,status等于0就正常,等于正数,比如78,就是错误。

launchctl list


2.开机时自动启动 php-fpm, -w 是立即启动的意思

sudo launchctl load -w /Library/LaunchAgents/org.php.php-fpm.plist


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

sudo launchctl unload [path/to/script]


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

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



plist 文件参考

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
      <key>Label</key>
      <string>php-fpm</string>
      <key>Program</key>
      <string>/usr/local/php5/sbin/php-fpm</string>
      <key>KeepAlive</key>
      <true/>
    </dict>
</plist>


真诚赞赏,手留余香
赞赏
随机推荐
PS手绘20171011
使用ffmpeg推流视频文件
自动构建JavaScript
JS性能优化 document.createDocumentFragment
CentOS 中 zip 和 unzip 命令
MySQL从一个表往另一个表中导出数据,并处理时间格式
Scoped Packages 范围包
MacOS终端下无法输入大写字母“T”
PHP 禁用危险函数参考
Vue 3.0 快速教程