supervisord

Supervisor 为服务创建守护进程

时光总嘲笑我的痴心妄想 提交于 2019-11-29 00:33:03
  今天需要再服务上部署一个.net 方面的项目;当时开启服务的命令只能在前台执行;使用nohub CMD &等放在后台开启服务都会宕机;所以搜寻了Supervisor 这个解决办法,为服务创建守护进程。具体操作如下 1、什么是守护进程   在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。由于在linux中,每个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭。但是守护进程却能突破这种限制,它脱离于终端并且在后台运行,并且它脱离终端的目的是为了避免进程在运行的过程中的信息在任何终端中显示并且进程也不会被任何终端所产生的终端信息所打断。它从被执行的时候开始运转,直到整个系统关闭才退出。 本篇的创建守护进程,是指发布在Linux上 asp.net core 程序的dotnet xxx.dll命令的宿主进程创建一个守护进程。 在 Linux 上有很多可以管理进程的工具,我们使用 Supervisor 来做这个事情。原因有两点: 1、它是微软官方文档推荐的,降低学习成本。 2、它并不一定是最好的,但一定是文档最全的。 2、认识 Supervisor 2.1

PMM出问题排查

孤街醉人 提交于 2019-11-29 00:22:09
PMM出问题排查 2017-09-29 阅读量259 看各种日志 monitoring service 1 2 3 4 [root@node4 ~]# ll /var/log/pmm-* -rw-r--r--. 1 root root 1880 Sep 27 18:02 /var/log/pmm-linux-metrics-42000.log -rw-r--r--. 1 root root 783 Sep 27 18:02 /var/log/pmm-mysql-metrics-42002.log -rw-r--r--. 1 root root 7143 Sep 27 18:08 /var/log/pmm-mysql-queries-0.log docker里的日志 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@node4 log]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e4916410b314 percona/pmm-server:latest "/opt/entrypoint.sh" 2 hours ago Up 31 minutes 0.0.0.0:80->80/tcp, 443/tcp pmm-server 948a9aeb047e

Celery: WorkerLostError: Worker exited prematurely: signal 9 (SIGKILL)

那年仲夏 提交于 2019-11-28 22:31:45
I use Celery with RabbitMQ in my Django app (on Elastic Beanstalk) to manage background tasks and I daemonized it using Supervisor. The problem now, is that one of the period task that I defined is failing (after a week in which it worked properly), the error I've got is: [01/Apr/2014 23:04:03] [ERROR] [celery.worker.job:272] Task clean-dead-sessions[1bfb5a0a-7914-4623-8b5b-35fc68443d2e] raised unexpected: WorkerLostError('Worker exited prematurely: signal 9 (SIGKILL).',) Traceback (most recent call last): File "/opt/python/run/venv/lib/python2.7/site-packages/billiard/pool.py", line 1168, in

super运行错误解决方法

允我心安 提交于 2019-11-28 21:46:13
自己实践: 要是下面的不成功,可能的原因是: 目录 / v a r / l o g / s u p e r v i s o r / /var/log/supervisor/ /var/log/supervisor/ / v a r / l o g / s u p e r v i s o r / 没有建立 杀掉supervisord,在重启就可以了 supervisor是一个很方便的进程管理工具,可以极大的提高管理效率,但是在使用中也会遇到一些问题。 近日我在部署网站代码的时候遇到了如下提示的错误 unix:///tmp/supervisor.sock no such file 1 cd进 /tmp/ 目录看了下,果然没有 supervisor.sock 文件。前一阵子用的时候还没有问题的。上网查了下,原来supervisor默认配置会把socket文件和pid守护进程生成在 /tmp/ 目录下, /tmp/ 目录是缓存目录,Linux会根据不同情况自动删除其下面的文件。原因找到了,就好办了,将supervisor配置文件里的相应地方改掉就好了。 打开配置文件 vi /etc/supervisord.conf 1 修改如下标示的几行即可 [unix_http_server] ;file=/tmp/supervisor.sock ; (the path to the socket

supervisor进程管理利器

久未见 提交于 2019-11-28 19:30:15
解释 实现进程服务管理,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制 安装 包管理工具安装 root@mysql-2:~# apt-get install -y supervisor pip安装 root@mysql-2:~# pip install supervisor 配置文件介绍 root@mysql-2:~# cat /etc/supervisor/supervisord.conf [unix_http_server] ; socket 文件,supervisorctl 会使用 file=/var/run/supervisor.sock ; (the path to the socket file) chmod=0700 ; sockef file mode (default 0700) ;[inet_http_server] ;HTTP服务器,提供web管理界面 ;port=127.0.0.1:9001 ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性 ;username=user ;登录管理后台的用户名 ;password=123 ;登录管理后台的密码 [supervisord] logfile=/tmp/supervisord.log ;日志文件,默认是 $CWD

Linux上 发布.Net Core

我们两清 提交于 2019-11-28 18:23:37
原文: Linux上 发布.Net Core 环境准备   下面我们使用VM虚拟机.我这里安装的Linux系统是centos7    软件提供:    VM: https://www.vmware.com/cn.html    centos7 Minimal : https://www.centos.org/download/ 如果不会下载可以到我的百度网盘下载:由于避免某某东东不直接提供下载 请右上角加群索要 直接打开VM 选择 文件打开 centos7镜像文件(我是使用的我网盘制作的镜像) 然后在配置内存网络就行了如图设置    选择开启系统 帐号: root 密码:123123 注意这里linux不支持小键盘输入 查看本机IP 安装 .NET Core SDK Linux各个发行版如何安装 .NET Core SDK,微软官方已经给出了标准答案,我这里就把在 CentOS 上的安装方法做一个简要说明。 Step1:安装 dotnet 产品提要 要开始安装 .NET,您需要注册 Microsoft 签名密钥并添加 Microsoft 产品提要。每台机器只需要做一次。 打开命令提示符并运行以下命令: sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "

Linux上 发布.Net Core

筅森魡賤 提交于 2019-11-28 18:23:17
环境准备   下面我们使用VM虚拟机.我这里安装的Linux系统是centos7    软件提供:    VM: https://www.vmware.com/cn.html    centos7 Minimal : https://www.centos.org/download/ 如果不会下载可以到我的百度网盘下载:由于避免某某东东不直接提供下载 请右上角加群索要 直接打开VM 选择 文件打开 centos7镜像文件(我是使用的我网盘制作的镜像) 然后在配置内存网络就行了如图设置    选择开启系统 帐号: root 密码:123123 注意这里linux不支持小键盘输入 查看本机IP 安装 .NET Core SDK Linux各个发行版如何安装 .NET Core SDK,微软官方已经给出了标准答案,我这里就把在 CentOS 上的安装方法做一个简要说明。 Step1:安装 dotnet 产品提要 要开始安装 .NET,您需要注册 Microsoft 签名密钥并添加 Microsoft 产品提要。每台机器只需要做一次。 打开命令提示符并运行以下命令: sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[packages-microsoft-com

supervisord for python 3?

不打扰是莪最后的温柔 提交于 2019-11-28 17:24:26
Want to use supervisord to control the processes for my Python 3 project. It is specifically stated that "Supervisor is known to work with Python 2.4 or later but will not work under any version of Python 3". Any suggestions for supervisor replacement for Python 3? Martijn Pieters The upcoming 4.0 release of Supervisord will support Python 2.7, and 3.4 and up . Until then, you could use the supervisor-py3k fork . Or simply run supervisord with Python 2; your Python 3 codebase is otherwise unaffected, as supervisord is an independent process. To use supervisord with Python 3 you can setup it

supervisord stopping child processes

▼魔方 西西 提交于 2019-11-28 16:12:21
问题 One of the problems, I face with supervisord is that when I have a command which in turn spawns another process, supervisord is not able to kill it. For example I have a java process which when runs normally is like $ zkServer.sh start-foreground $ ps -eaf | grep zk user 30404 28280 0 09:21 pts/2 00:00:00 bash zkServer.sh start-foreground user 30413 30404 76 09:21 pts/2 00:00:10 java -Dzookeeper.something..something The supervisord config file looks like: [program:zookeeper] command=zkServer

构建redis-4.0.11-Dockerfile

只愿长相守 提交于 2019-11-28 15:41:43
编写Dockerfile FROM alpine:latest MAINTAINER hz7726@163.com RUN apk add --no-cache --virtual .build-deps curl gcc supervisor linux-headers make musl-dev tar \ && mkdir /data \ && cd /data \ && curl -sO http://download.redis.io/releases/redis-4.0.11.tar.gz \ && tar xf redis-4.0.11.tar.gz \ && rm -fr redis-4.0.11.tar.gz \ && rm -fr /var/cache/apk/* \ && cd redis-4.0.11 \ && make PREFIX=/usr/local/redis install \ && rm -fr redis-4.0.11 COPY ./supervisord.conf /etc/supervisord.conf COPY ./startredis.sh /startredis.sh EXPOSE 6379/tcp RUN chmod +x /startredis.sh ONBUILD RUN /usr/bin/supervisorctl