mac下supervisor安装及简单配置
supervisor是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(守护进程)。可以用他来管理自己的“服务程序”。
安装
首先安装Python,Mac系统好像自带。
执行 sudo pip install supervisor 安装
安装pip
下载get-pip.py,然后执行。具体请查看文档
$ wget https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py
...
$ sudo python get-pip.py
配置
使用默认配置项
$ sudo echo_supervisord_conf > /etc/supervisord.conf
$ sudo vim /etc/supervisord.conf
其他可以暂时忽略,修改最底下一行
; 包含其他的配置文件
[include]
files = /etc/supervisor/*.conf ; 可以随意指定,目录不存在请先建立。配置文件可以是 *.conf 或 *.ini
测试一下
supervisord -c /etc/supervisord.conf
ps aux | grep supervisord
配置“服务”
这里我用“IDEA License Server”做示例
sudo vim /etc/supervisor/idea.conf
文件内容
[program:idea] ; 是应用程序的唯一标识,不能重复
directory = /data/jidea-server ; 程序的启动目录
command = /data/jidea-server/IntelliJIDEALicenseServer_darwin_amd64 ; 启动命令
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /var/log/supervusor/jidea-server.log ; stdout 日志文件,注意:要确保目录已经建立并且可以访问(写权限)
使用命令supervisorctl -c /etc/supervisord.conf加装并启动。如果一切正常可以使用命令supervisorctl status查看状态。例如:
$ supervisorctl status
idea RUNNING pid 1177, uptime 0:32:00
$
以上输出表示一起正常,如果有错误,请“具体情况具体分析”本文档暂不做相关讨论。
使用 launchctl 来启动 supervisor 自身
launchctl是Mac自带的工具,具体使用方法请看官方文档或者问度娘。
这里我在 /Library/LaunchAgents 目录下, 创建一个 supervisord.plist 文件, 命令:sudo vim /Library/LaunchDaemons/supervisord.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>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>Label</key>
<string>supervisord</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/supervisord</string>
<string>-n</string>
<string>-c</string>
<string>/etc/supervisord.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
注意:检查文件的权限
$ ls -lsa /Library/LaunchDaemons
total 24
0 drwxr-xr-x 5 root wheel 170 11 22 09:44 .
0 drwxr-xr-x+ 67 root wheel 2278 11 16 14:41 ..
8 -rw-r--r-- 1 root wheel 590 11 16 17:52 supervisord.plist
supervisord.plist必须是属于root用户的。不是的话修改:sudo chown root:wheel /Library/LaunchDaemons/supervisord.plist。最后启动他
sudo launchctl load /Library/LaunchDaemons/supervisord.plist
注意,在启动前先检查一下supervisord时不时已经在运行了,如果已经运行请先kill掉。
注意: 必须在这个目录(/Library/LaunchDaemons)下才会使用root启动。
$ ps aux | grep supervisord
user 1167 0.0 0.2 4304600 15744 ?? Ss 9:52上午 0:00.51 /usr/bin/python /usr/local/bin/supervisord -n -c /etc/supervisord.conf
$ kill -4 1167
作者:xBei
链接:https://www.jianshu.com/p/050273859836
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
mac下supervisor安装及简单配置的更多相关文章
- Nginx在windows环境下的安装与简单配置
版权声明:本文为博主原创文章,未经博主允许不得转载. 一. 下载并安装Nginx 去Nginx官网下载 我这里选取nginx/Windows-1.10.3版本,下载后解压出来即可,解压出来的路径不能含 ...
- windows下redis安装以及简单配置
1.下载redis 下载地址https://github.com/dmajkic/redis/downloads.有32bit和64bit根据自己需要选择就可以了. 2.安装redis 首先使用cmd ...
- vim7.4在Win8下的安装及简单配置
软件环境 vim74 git vim中文帮助 vundle安装——插件管理软件 cd vim所在路径/vimfiles/bundle git clone https://github.com/gmar ...
- Mac下Tomcat安装与Intellij IDEA配置Tomcat
Mac下Tomcat安装与Intellij IDEA配置Tomcat 一 安装 1 下载地址:https://tomcat.apache.org/download-90.cgi 2 将压缩包解压后移至 ...
- Mac下Maven安装与配置
Mac下Maven安装与配置 下载maven http://maven.apache.org/download.cgi main->download菜单下的Files 下载后解压在Documen ...
- Linux下的GitHub安装与简单配置教程 ~ 转载
Linux下的GitHub安装与简单配置教程 1.GitHub简介 Git是一个分布式版本控制系统,与其相对的是CVS.SVN等集中式的版本控制系统. 2.Git的安装 1)安装Git a.查看与 ...
- Mac下删除安装的pkg
Mac下的安装和删除都比windows更加简单清晰,这点在dmg方式下非常明显,但很多时候我们会使用pkg来进行安装,这样的安装想删除就有点麻烦了. 比如,我安装了Golang这个pkg用于g ...
- Mac 下 docker安装
http://www.th7.cn/system/mac/201405/56653.shtml Mac 下 docker安装 以及 处理错误Cannot connect to the Docker d ...
- docker的安装和简单配置
docker的安装和简单配置 docker是balabalabala...懒得介绍. 国内安装docker很蛋疼,按照官方配置好了软件源之后,几十MB的安装文件下载要半天,没办法,docker默认的软 ...
随机推荐
- 推荐一个好工具:P/Invoke Interop Assistant【转】
原文地址 :http://write.blog.csdn.net/postedit 在从托管代码里面调用非托管代码的时候,经常会翻阅MSDN找到需要调用的这个程序集里面的关于需要调用方法的签名,还要特 ...
- 终止java线程的2种方法
1.使用一个volatile的共享变量 2.使用interrupt方法 import java.util.concurrent.TimeUnit; /** * ThreadTest */ public ...
- UESTC 1034 AC Milan VS Juventus 分情况讨论
AC Milan VS Juventus Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Oth ...
- 中期linux课程考试题
[口头表达] 1)请描述你了解的磁盘分区的相关知识2)什么是rsync,你有什么生产环境的应用?3)在生产环境中,公司的IDC机房即将超过254台机器,请问你有什么解决方案来规划扩展IDC机房的内网网 ...
- 很烦人的maven和gradle的jar缓存
1. 起因 a. 最近在学习大数据相关东西,自然就少不免去操作linux系统,更别说不敲命令 b. 然而那个配置软件时,很经常使用ln -s为一个软件目录(带着版本或者其他信息的长命名)创建别名(软连 ...
- Mac 开发必备 利器 iterm2 oh-my-zsh
推荐终端神器 iterm2 以及 oh-my-zsh,可以研究一下怎么用,好的开发环境是可以提高效率的,以及alias 的使用. https://www.zhihu.com/question/2744 ...
- static在类中的功能
有时候类需要它的一些成员与类本身直接相关,而不是与类的各个对象保持关联. 例如一个银行账户类可能需要一个数据成员来表示当前的利率.在此例中,我们希望利率与类关联,而非与类的每个对象关联.从实现效率上来 ...
- python 读取大文件,按照字节读取
def read_bigFile(): f = open("123.dat",'r') cont = f.read() : print(cont) cont = f.read() ...
- C++ 函数模板重载
函数模板可以像普通函数那样重载. C++ 编译器会从不同的候选中匹配一个并进行调用. 即使不涉及到模板,这种匹配的规则也很复杂,现在还有加上模板一起匹配. 先来个小例子: #include <i ...
- python 文档
python 文档 https://docs.python.org/2/library/index.html