昨天在前领导技术大牛吕哥的帮忙下,python服务管理从nginx+supervisor+uwsgi+python3改为了轻便结构nginx + unit + python3,部署和配置起来顿时轻松起来。服务器配置好以后赶紧上官网http://unit.nginx.org将英文文档全部啃完,全面理解了它的运行原理。

  由于nginx unit它的服务重启方式,是自动检测配置文件是否有更改,然后才会自动重载,而python代码发布以后,并没有对配置进行更改,所以昨晚在进行代码更新以后,发现运行的还是旧的程序,和吕哥沟通后他说等他想想解决办法。早上一早就发信息过来并将执行代码发了过来。一看原来是直接kill掉进程的方式,再通过运行服务启动程序来进行重载。

  然后我就拿测试服务器实验了起来,在服务器上输入下面命令,将unit进程kill掉

kill -9 `ps -ef |grep unit|awk '{print $2}'`

  跟着执行启动服务命令(这个命令的路径,大家安装的位置不同路径是不一样的,替换成自己的就可以执行了)

/usr/local/src/unit/build/unitd

  命令执行以后发现先是报下面错误,但服务正常启动了

2018/12/20 11:53:25 [alert] 1299#1299 Unable to create certificates storage directory: mkdir(state/certs/) failed (2: No such file or directory)
2018/12/20 11:53:25 [info] 1299#1299 bind(7, unix:control.unit.sock) failed (98: Address already in use)

  进入buile目录下面发现state与certs目录都存在,没有发现有什么问题

  输入命令查看服务启动状态:ps -ef | grep unit

  检查服务没有启动,解决不了只能输入reboot重启一下服务器,重启后运行服务启动命令还是报同样的错误

2018/12/20 11:54:17 [alert] 1299#1299 bind(6, unix:control.unit.sock) failed (98: Address already in use)

  服务直接挂了启动不了......

  赶紧上goole和百度查询解决方案,发现没有一篇文章,难道只有我是这么干才会出来这种个问题吗?人品简直是爆炸了

  没有办法的情况下,只能自己研究检查了,看看日志有没有什么记录,查看build目录下面的unit.log并没有什么异常记录。在检查的过程中发现build目录下面有个0字节的文件名很可疑,名字跟错误提示中的信息一样:control.unit.sock

  

  感觉应该有可能是这个文件造成的,所以尝试使用删除命令将它删掉,然后再次运行服务启动命令,发现一切恢复正常状态,再次刷新这个文件夹,发现删除掉的这个文件又出来了

  通过这样操作的结果,可以判断unit在启动后,它会在build目录创建一个名为control.unit.sock的文件,做为服务锁以防止服务同时启动多个,而当服务被非正常状态关闭时,可能就会引发这个文件没有被同步清除,而导致服务无法正常启动。

  除了使用kill方法删除unit进程以外,我还尝试使用reboot直接启动服务器,也试过出现同样的问题,服务启动不了。还好发现这个问题以后积极研究解决了,不然万一线上系统哪一天要重启,导致同样的情况发生而一直无法访问,那就影响大了去了。

版权声明:本文原创发表于 博客园,作者为 AllEmpty 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

python开发QQ群:669058475(本群已满)、733466321(可以加2群)    作者博客:http://www.cnblogs.com/EmptyFS/

关于nginx unit服务非正常关闭后,无法重新启动问题的处理的更多相关文章

  1. MongoDB非正常关闭后修复记录

    启动mongodb时出现如下错误: 根据提示可以知道错误原因是mongodb非正常关闭,此时需要对数据库进行修复.修复命令:mongod --repair 或 ./mongod --repair , ...

  2. myeclipse非正常关闭处理办法

    myeclipse正常或非正常关闭后,再次运行,不显示启动时的logo和读条,进入主页面后程序基本就卡死,无法正常运行,解决办法. 方法一:修改工作空间在刚启动Myeclipse的时候会有一个选择工作 ...

  3. svn + nginx unit + python3自动化发布web服务方法

    本周将python web服务管理更换成nginx unit以后发现接口性能有了明显的提升,访问速度快了不少.不过有个很大的问题就是使用svn自动化发布以后,服务并没有刷新使用新的代码运行,而又不懂得 ...

  4. windows tomcat nginx session(当一台tomcat关闭后)

    在windows下作nginx负载均衡测试. nginx的配置文件如下: worker_processes  1; events { worker_connections  1024; } http ...

  5. 非正常关闭myeclicps后,出现错误Errors occurred during the build.的解决方法

    我的myeclicps是10.7版本由于非正常关闭,在启动tomcat时候出现了问题. 解决法案: 1.关闭myeclicps. 2.打开你的myeclicps的工作空间(workspace自己设置的 ...

  6. 【转】Android Service被关闭后自动重启,解决被异常kill 服务

    http://www.kaifajie.cn/android/10182-2.html 每次调用startService(Intent)的时候,都会调用该Service对象的onStartComman ...

  7. VMware服务关闭后一定要重启

    重要的事情说三遍:服务暂时关闭记得重启,服务暂时关闭记得重启,服务暂时关闭记得重启!!! VMware服务由于安装补丁的需要我暂时把服务关闭了,于是我遇到了尴尬的一幕,于是乎发现上不了网了,于是各种操 ...

  8. nginx Windows服务形式运行

    背景 现在使用ngnix的人越来越多,nginx的优势劣势网上也很多说明.这里就不探讨nginx优势与劣势,每个工具都有自己优势劣势,没有最好的工具,只有最合适的工具.   如何选择适当的工具,根据项 ...

  9. 八.nginx网站服务实践应用

    期中集群架构-第八章-期中架构nginx章节====================================================================== 01. web ...

随机推荐

  1. 第一周Python学习笔记

    Python 基本语法: ①  Python程序的格式:1.用代码高亮来标识函数丶语句等等 本身的代码高亮并没有实际的意义,只是用来辅助编程人员和阅读人员 更好的识别 2.程序以缩进来标识语句,缩进用 ...

  2. cmd wevtutil 读取远程日志错误,Error:在没有配置的 DNS 服务器响应之后,名称 Server23.localdomain 的名称解析超时。

    想要根据xml文件筛选器读取远程主机最新的几条日志,结果老是提示: Error : wevtutil qe SystemQuery.xml /f:text /rd: /sq:true /r:\\*** ...

  3. zabbix安装及简单使用备注

    1.安装mysql yum install -y mariadb mariadb-server systemctl start mariadb 2.安装apache yum -y install ht ...

  4. 解决ASP.NET Core MVC调试慢的问题

    最近在做的一个项目中,发现网页端同时发起了4个AJAX请求需要数秒才获取到响应,太慢了,当我把请求数降低为1个的时候,速度看起来就比较正常,增加到2个同时的请求后,速度就有些慢了,3个的话就明显慢了, ...

  5. Android进阶之光-第1章-Android新特性-读书笔记

    第 1 章 Android 新特性 1.1 Android 5.0 新特性 1.1.1 Android 5.0 主要新特性 1. 全新的 Material Design 新风格 Material De ...

  6. 从壹开始微服务 [ DDD ] 之六 ║聚合 与 聚合根 (下)

    前言 哈喽大家周二好,上次咱们说到了实体与值对象的简单知识,相信大家也是稍微有些了解,其实实体咱们平时用的很多了,基本可以和数据库表进行联系,只不过值对象可能不是很熟悉,值对象简单来说就是在DDD领域 ...

  7. Floor报错原理分析

    最近开始打ctf了,发现好多sql注入都忘了,最近要好好复习一下. 基础知识: floor(): 去除小数部分 rand(): 产生随机数 rand(x): 每个x对应一个固定的值,但是如果连续执行多 ...

  8. string类的几种方法

    string str="123abc456";int i=3;1 取字符串的前i个字符   str=str.Substring(0,i); // or  str=str.Remov ...

  9. QUIC协议原理分析(转)

    之前深入了解了一下HTTP1.1.2.0.SPDY等协议,发现HTTP层怎么优化,始终要面对TCP本身的问题.于是了解到了QUIC,这里分享一篇之前找到的有意义的文章. 原创地址:https://mp ...

  10. Python:bs4的使用

    概述 bs4 全名 BeautifulSoup,是编写 python 爬虫常用库之一,主要用来解析 html 标签. 一.初始化 from bs4 import BeautifulSoup soup ...