首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Laoqi's Linux运维专列

    Nginx 启动、停止、平滑重启平滑升级

    有了pid文件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下: # kill-信号类型'/usr/local/nginx/logs/nginx.pid' 平滑重启 如果更改了配置就要重启 不是的,可以向Nginx发送信号,平滑重启平滑重启命令: # kill -HUP 住进称号或进程号文件路径 或 # /usr/local/nginx/sbin/nginx -s reload 注意,修改了配置文件后最好先检查一下修改过的配置文件是否正确 ,以免重启后Nginx出现错误影响服务器稳定运行。 补充内容:nginx的几种信号 TERM,INT 快速关闭 QUIT 从容关闭 HUP 平滑重启,重新加载配置文件 USR1 重新打开日志文件,在切割日志时用途较大 USR2 平滑升级可执行程序

    6.7K41发布于 2018-05-31
  • 来自专栏开源部署

    Nginx平滑重启平滑升级的方法

    如何实现nginx平滑重启平滑升级? 平滑重启 kill -HUP `cat /usr/local/www/nginx/logs/nginx.pid`  平滑升级nginx:  cd /yujialin  wget http://nginx.org

    1K10编辑于 2022-06-29
  • 来自专栏腾讯云TVP

    golang 服务平滑重启小结

    标签: graceful endless supervisor defunct --- 背景 golang 程序平滑重启框架 supervisor 出现 defunct 原因 使用 master/worker 要想实现平滑重启大致有三种方案,一种是在流量调度的入口处理,一般的做法是 ApiGateway + CD ,发布的时候自动摘除机器,等待程序处理完现有请求再做发布处理,这样的好处就是程序不需要关心如何做平滑重启 第二种就是程序自己完成平滑重启,保证在重启的时候 listen socket FD(文件描述符) 依然可以接受请求进来,只不过切换新老进程,但是这个方案需要程序自己去完成,有些技术栈可能实现起来不是很简单 golang 程序平滑重启框架 与 java、net 等基于虚拟机的语言不同,golang 天然支持系统级别的调用,平滑重启处理起来很容易。 但是如果我们用了平滑重启框架,原来被 supervisor 启动的进程发布重启 fork子进程之后正常退出,当再次发布重启 fork 子进程后就会变成无主进程就会出现 defunct(僵尸进程) 的问题

    3.8K21发布于 2019-10-19
  • 来自专栏王清培的专栏

    golang 服务平滑重启小结

    要想实现平滑重启大致有三种方案,一种是在流量调度的入口处理,一般的做法是 ApiGateway + CD ,发布的时候自动摘除机器,等待程序处理完现有请求再做发布处理,这样的好处就是程序不需要关心如何做平滑重启 第二种就是程序自己完成平滑重启,保证在重启的时候 listen socket FD(文件描述符) 依然可以接受请求进来,只不过切换新老进程,但是这个方案需要程序自己去完成,有些技术栈可能实现起来不是很简单 golang 程序平滑重启框架 与 java、net 等基于虚拟机的语言不同,golang 天然支持系统级别的调用,平滑重启处理起来很容易。 github.com/tylerb/graceful endless https://github.com/fvbock/endless 上面两个是 github 排名靠前的 web host 框架,都是支持平滑重启的 但是如果我们用了平滑重启框架,原来被 supervisor 启动的进程发布重启 __fork__子进程之后正常退出,当再次发布重启 fork 子进程后就会变成无主进程就会出现 defunct(僵尸进程)

    1.1K20发布于 2019-10-21
  • 来自专栏数字化之路

    golang 服务平滑重启小结

    要想实现平滑重启大致有三种方案: 第一种是在流量调度的入口处理,一般的做法是ApiGateway + CD,即在发布的过程中,当新服务部署完成后,就将新进来的流量路由到新服务,并下线掉没有流量的老服务, 这样的好处就是程序不需要关心如何做平滑重启。 第二种就是程序自己完成平滑重启,保证在重启的时候 listen socket FD(文件描述符) 依然可以接受请求进来,只不过切换新老进程,但是这个方案需要程序自己去完成,有些技术栈可能实现起来不是很简单 golang 程序平滑重启框架 与 java、net 等基于虚拟机的语言不同,golang 天然支持系统级别的调用,平滑重启处理起来很容易。 但是如果我们用了平滑重启框架,原来被 supervisor 启动的进程发布重启 fork子进程之后正常退出,当再次发布重启 fork 的子进程就会变成没有主进程,那么,此子进程就无法完成正常退出。

    1.8K20编辑于 2023-03-07
  • 来自专栏全栈程序员必看

    守护进程、信号和平滑重启

    平滑重启 swoole是常驻内存的,若想让修改后的代码生效,就必须Ctrl+C,然后再重启server。对于守护进程化的server呢?则需kill掉后,再重启。 swoole为我们提供了平滑重启机制,我们只需要向swoole_server的主进程发送特定的信号,即可完成对server的重启平滑重启包含的信号 SIGTERM,一种优雅的终止信号,会待进程执行完当前程序之后中断,而不是直接干掉进程 SIGUSR1,将平稳的重启所有的Worker进程 SIGUSR2,将平稳的重启所有的 Task进程 pstree | grep server_process #找出主进程 kill -TERM 55559 #优雅终止主进程 kill -USR1 55559 #热重启worker进程, onWorkerStart回调之后加载的文件,重启才有意义 kill -USR2 55559 #热重启task进程,onTask回调之后加载的文件,重启才有意义 要加载的文件 (Person.php)

    1.2K10编辑于 2022-07-11
  • 来自专栏码农编程进阶笔记

    守护进程、信号和平滑重启

    平滑重启 swoole是常驻内存的,若想让修改后的代码生效,就必须Ctrl+C,然后再重启server。对于守护进程化的server呢?则需kill掉后,再重启。 swoole为我们提供了平滑重启机制,我们只需要向swoole_server的主进程发送特定的信号,即可完成对server的重启平滑重启包含的信号 SIGTERM,一种优雅的终止信号,会待进程执行完当前程序之后中断,而不是直接干掉进程 SIGUSR1,将平稳的重启所有的Worker进程 SIGUSR2,将平稳的重启所有的Task 回调之后加载的文件,重启才有意义 kill -USR2 55559 #热重启task进程,onTask回调之后加载的文件,重启才有意义 要加载的文件 (Person.php) ~~~ class Person $serv->on('WorkerStart', function ($serv, $workerId) { //onWorkerStart之后加载的文件,如果该文件有改动,则可以热重启

    1.3K10发布于 2021-07-20
  • 来自专栏网络加速

    平滑重启你的后台TCP服务

    何为平滑重启以及为何平滑重启重要? 后台业务一般都是通过TCP协议提供服务。服务难免需要版本升级,需要经历旧进程的退出和新进程的启动。 因此,优雅退出只是实现平滑重启的一个必要部分,平滑重启还要求更多。可见平滑重启是后台服务的一个十分重要的基础能力。 2. 如何实现平滑重启平滑重启能力这么重要,要如何实现呢? 初步看起来,这样做应该能实现平滑重启。让我们具体来分析下,这种方案能否实现我们的平滑重启的需求。 ; 平滑重启异常支持输出日志,或执行指定的回调上报异常; 支持配置指定的信号触发平滑重启; ... 本文简析了平滑重启的原理及相关实现要点,澄清了reuseport实现平滑重启的误区,并结合工程上的考量实现一个通用的平滑重启库,以期为读者了解、实现健壮的平滑重启做一点点微薄的贡献。

    2.8K10编辑于 2022-02-11
  • 来自专栏CSDN搜“看,未来”

    【Nginx 源码学习】平滑重启,源码追踪

    文章目录 平滑重启难点 平滑重启流程 源码探秘 平滑重启难点 重启意味着新旧接替,在交接任务的过程中势必会存在新旧server并存的情形,因此,最主要的问题在于如何保证新旧server可以并存,如果重启前后的 平滑重启流程 nginx reload流程 (1)向 master 进程发送 HUP 信号(reload命令) (2)master 进程校验配置文件语法是否正确 (3)master 进程打开新的监听端口 进程用新配置启动新的 worker 子进程 (5)master 进程向老 worker 子进程发送 QUIT 信号 (6)老 worker 进程关闭监听句柄,处理完当前连接后结束进程 reload 可以实现平滑重启 、 原先我也不得其法,翻来翻去,后来想明白了一点: 拿重启和正常启动做比较不就好了吗? ... } } next: continue; } return NGX_OK; } 这里有正常启动的和重启

    1K20编辑于 2022-05-06
  • 来自专栏网络技术联盟站

    OSPF GR(Graceful Restart,平滑重启)技术

    概述 GR(Graceful Restart,平滑重启)是一种在主备切换或协议重启时保证转发业务不中断的机制。 在协议重启完毕后,周边设备协助其进行信息(包括支持GR的相关协议所维护的 各种拓扑、路由和会话信息)同步,在尽量短的时间内恢复到重启前的状态。 在协议重启过程中不 会产生路由振荡,报文转发路径也没有任何改变,整个系统可以实现不间断运行。 OSPF GR可以保证运行OSPF协议的路由器在进行主备切换或 OSPF协议重启时,转发业务正常进行。 这样当发生 主备倒换或协议重启时,数据转发仍然可以不中断进行。 同时,如果在重启期间周边设备能维持邻居关系不变并保持路由稳定,并且在设备重启后能协助设 备进行路由信息同步,在尽量短的时间内使得本设备的路由信息恢复到重启前的状态,那么就可以 保持网络拓扑稳定,不引起网络路由振荡

    3.9K21发布于 2020-06-17
  • 来自专栏呆呆熊的技术路

    php-fpm平滑重启为什么不平滑(process_control_timeout)

    万事不求人, 看下php-fpm的日志就知道啥时候上过线了(我们构建项目会重启fpm). 先下个结论,顺着这个想想 发布服务重启php-fpm, 导致的代码流程执行中断. 4. 等等, 应该是平滑重启,怎么会中断? 平滑重启为什么不平滑? 借助着搜索引擎的力量, 找问题就变得傻瓜起来 记 php-fpm 重启导致的 程序执行中断问题 https://yq.aliyun.com/articles/226970 重启php-fpm时请求发生502 id=60961 最后详细的读了下最后一篇向官方反馈的bug, php-fpm的平滑重启平滑 其中目前建议: [2013-02-13 15:57 UTC] phpbugs at oops dot mooo

    2.5K50发布于 2019-07-16
  • 来自专栏站长的编程笔记

    PHP平滑关闭重启的实现代码

    本文为小伙伴们带来了关于PHP平滑关闭/重启的实现代码, 前言 写过 CLI 常驻进程的老司机肯定遇到过这么一个问题:在需要更新程序的时候,我要怎样才能安全关闭老进程? 你可能会想到 NGINX、php-fpm 之类的平滑重启是给进程发送 USR2 信号,然后它就会将当前请求处理完再退出。 但进程是怎样接收信号、处理信号,估计就不是很多人能说清楚了。 原理 要实现平滑关闭/重启不难,这里先讲解两个知识点: 阻塞信号 当我们的程序正在处理一个任务的时候,你肯定不希望它中途被终止,比如说你在执行一个数据库事务,肯定不希望事务还没被提交进程就被终止了。 拼起来 到这里你已经了解平滑关闭/重启的原理了,我们把上面的半成品代码(因为在收到信号后可能还会进入下一层循环)整理一下:

    1.4K30编辑于 2022-12-02
  • Go Web服务中如何优雅平滑重启

    传统的做法通常是停止当前服务,部署新代码后再重启服务,但这种方式会导致正在处理的请求被强制中断,用户体验会受到很大的影响。 在这篇文章中,我将带大家一起探索如何在 Go 语言中通过使用 endless 包来实现服务的优雅重启,即在不影响当前正在处理的请求的情况下,完成服务的无缝升级。什么是优雅重启? 优雅重启的核心思想是:在服务启动新的进程处理新请求的同时,允许旧的进程继续完成其手头未完成的工作,然后再优雅地退出。 实现优雅重启的代码示例下面的代码演示了如何使用 endless 包来实现 Gin 服务的优雅重启。 总结在实际的生产环境中,优雅重启是非常实用的一项技术,它可以帮助我们在不影响用户体验的前提下,对服务进行升级和维护。

    46710编辑于 2024-11-15
  • 来自专栏Go实战

    Golang 平滑关闭/重启与热编译技术 原

    Golang 平滑关闭/重启与热编译技术 1 平滑关闭 本文所讨论的平滑关闭是指,HTTP服务、RPC服务、Socket长服务等各种网络服务的平滑关闭。
    2 平滑重启 平滑重启,又叫做平滑升级、优雅重启。实际上它包含两部分内容: 平滑关闭老进程 无停服切换至新进程 平滑关闭在上面第1章节已经讲述,因此该章节只讨论无停服切换新进程的问题。 2.1 平滑重启步骤 Linux下的平滑重启步骤: 如需升级服务则用新的可执行文件替换老的可执行文件,如只需平滑重启则跳过这一步 通过信号或API调用平滑重启函数,完成操作: 使用当前进程的listener 子进程在当前进程退出后,会被init进程领养,并继续提供服务 2.2 调用平滑重启函数 在Linux下,我们通常使用kill -USR2 [pid]来发送信号,调用平滑重启函数。 一定程度上类似于平滑重启,比如windows下只能使用该方式模拟平滑重启,达到接近无停服的效果。

    2.3K30发布于 2019-04-04
  • 来自专栏星辰日记

    WorkerMan reload平滑重启无效的解决方案

    对于平滑重启 Workerman由于其常驻内存的特性, 修改代码并不会实时生效, 对此Workerman其实也有一套方案 > FileMonitor 通过定时监控代码的变更来自动reload.

    1.3K20编辑于 2022-02-08
  • 来自专栏拂晓风起

    node.js cluster多进程、负载均衡和平滑重启

    整个架构没有太大的难点,重点就是做好一些细节处理,例如重启、日志、5秒心跳包等。 多进程的架构,相对原始的单进程+pm2重启好处肯定多很多,整个node服务会更稳定,不会突然彻底挂了。 3 平滑重启 每次发布新版本,服务器必然需要重启。 简单粗暴的,杀掉主进程,全部重启,必然会有一段时间的服务中断。 ? 对于小企业还好,可以安排在凌晨重启,但对于大公司大产品来说,就不能这么粗暴了。 那么我们需要平滑重启,实现重启过程中,服务不中断。 策略并不复杂,但非常有效: 1、worker进程轮流重启,间隔时间; 2、worker进程并不是直接重启,而是先关闭新请求监听,等当前请求都返回了,再重启。 cluster.worker.disconnect(); } catch (er2) { } 实施了平滑重启后,服务器的吞吐率会平滑很多。 ?

    2.8K30发布于 2018-07-03
  • 来自专栏项目文章

    Nginx启动、重启、重新加载配置文件和平滑升级

    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) configure arguments: --prefix=/usr/local/nginx 七、重启日志文件 重启日志文件,备份日志文件时常用:nginx -s reopen 或者 kill -USR1 主进程号 [root@localhost sbin]# . 八、nginx平滑升级 如果你需要升级或者添加、删除服务器模块时,可以通过nginx的平滑升级,在不停止服务的情况下升级nginx。

    5.8K10编辑于 2024-06-07
  • 来自专栏张戈的专栏

    php平滑重启nginx,彻底清除WordPress的静态缓存

    所以,根据以上需求,很容易得出一个解决方案:当点击前台清理按钮时,php 先删除缓存文件,然后 reload 平滑重启 nginx 就可以实现彻底清除缓存了! 三、部署代码 ①、新增平滑重启 nginx 的脚本 #在Linux的opt目录新增reload_nginx.sh脚本:   [root@Mars_Server ~]# vim /opt/reload_nginx.sh             if (file_exists($cachefile)) {                 unlink($cachefile);                 //删除缓存后平滑重启 cachefile)) {                 unlink($cachefile);                 rmdir($cachedir);                 //删除缓存后平滑重启 全部完成之后,现在在前台使用缓存清理功能,将会先删除缓存文件,然后平滑重启 nginx,从而真正实现在纯静态的前台实时清理缓存,显示最新内容!

    2.1K90发布于 2018-03-23
  • 来自专栏网络技术联盟站

    OSPF技术连载24:OSPFv3高级部分 平滑重启、与BGP联动、邻居震荡抑制

    本文将综合介绍OSPFv3技术的三个重要应用:平滑重启(Graceful Restart)、OSPFv3与BGP联动以及OSPFv3邻居震荡抑制。 让我们从平滑重启开始,探讨如何在路由器重启过程中保持数据正常转发,以及避免对关键业务的影响。接着,我们将深入探讨OSPFv3与BGP联动技术,它如何解决在网络动态变化时可能出现的流量丢失问题。 一、OSPFv3 GR: 平滑重启(Graceful Restart) 平滑重启(Graceful Restart,以下简称GR)是一项旨在确保路由协议在重启过程中保持数据正常转发,不影响关键业务的技术 平滑重启(Graceful Restart) 为网络重启提供了一种无缝转换的方式,使得数据转发在协议重启期间不会受到中断,从而保障业务的连续性。 通过综合运用平滑重启、联动特性和邻居震荡抑制,我们构建了一个更加稳定、可靠的网络基础,为未来的网络发展铺平了道路。

    73221编辑于 2023-09-05
  • 来自专栏云原生布道专栏

    【重识云原生】第四章云网络4.3.9节——Graceful Restart(平滑重启)技术

    —高级特性 第四章云网络4.3.7.5节——实操 第四章云网络4.3.7.6节——MP-BGP协议 第四章云网络4.3.8节——策略路由 第四章云网络4.3.9节——Graceful Restart(平滑重启 )技术 ​ ​  1 前言         GR(Graceful Restart,平滑重启)是一种在主备切换或协议重启时保证转发业务不中断的机制。 同时,如果在重启期间周边设备能维持邻居关系不变并保持路由稳定,并且在设备重启后能协助设 备进行路由信息同步,在尽量短的时间内使得本设备的路由信息恢复到重启前的状态,那么就可以 保持网络拓扑稳定,不引起网络路由振荡 ielab_ie-lab网络实验室ccie认证之家的博客-CSDN博客 GR技术介绍 - 百度文库 GR技术介绍-新华三集团-H3C oracle tlv,OSPF GR(Graceful Restart,平滑重启 )技术_Well Honey的博客-CSDN博客 平滑重启_百度百科

    93740编辑于 2022-06-12
领券