Linux下app进程重启自身的三种方法 📅 发布时间:2026/7/8 4:02:18 👁️ 浏览次数: 1.纯 exec 替换最干净PID 不变这是最正统的自重启方式。程序直接调用 execve 替换自己。void restart_self_safe(void) {// 1. 刷新所有标准 I/O 缓冲fflush(NULL);// 2. 关闭所有非标准文件描述符 (保留 stdin, stdout, stderr)int max_fd sysconf(_SC_OPEN_MAX);if (max_fd 0) max_fd 1024;for (int fd 3; fd max_fd; fd) {close(fd);}// 3. 恢复工作目录if (chdir(/rp_test) ! 0) {// 如果切换失败仍尝试继续执行不阻塞重启perror(Warning: chdir failed);}// 4. 执行重启char *const argv[] { app, NULL };execv(/rp_test, argv);// 5. 失败处理打印错误并强行退出fprintf(stderr, Fatal: execv failed (%s). Exiting.\n, strerror(errno));exit(EXIT_FAILURE);} 功能及代码详细介绍特点PID 保持不变外部看门狗或 systemd 不会察觉到进程变更。不创建子进程完全不存在文件描述符FD继承问题。进程启动时打开的“普通文件描述符”默认会被继承除非设置了 O_CLOEXEC如果代码不干净可能带毒启动。2.通过 system() 调用 Shell 脚本这就是你之前出问题的写法。虽然看起来简单但绝对不要在正式产品中用这种方式自重启。void restart_self_system(void) {system(/rp_test/restart.sh restart);}restart.sh内容#!/bin/shSCAN_APP/rp_test/appcase $1 instart)echo Starting app...start-stop-daemon -S -b -x /rp_test/app;;stop)echo Stopping app...killall -9 app;;restart)for fd in $(ls /proc/$$/fd); do #清除之前的网络fd否则重启后网络不正常[ $fd -gt 2 ] exec {fd}-done 2/dev/nullkillall -9 appsleep 1 # Prevent race condition: ensure scan_app stops before start.echo Retarting app...start-stop-daemon -S -b -x /rp_test/app;;*)echo Usage: $0 {start|stop|restart}exit 1esac3.在监控进程中重启app进程最彻底system(killall -9 app);system(start-stop-daemon -S -b -x /rp_test/app);
重庆财税代理记账公司排名,前五机构真实服务测评 我是云析财税的顾问。选重庆财税代理记账公司,关键就看有没有《代理记账许可证书》 。实测了5家机构,发现服务差距极大。我带你看看哪家真正靠谱,让你心里有个底。 一、 别只看价格,你得先看这张“上岗证” 咱们开门见山。很多老… 2026/7/8 4:00:18
面试官问我用没用过低代码平台,前端的饭碗还稳吗? 最近在找工作,面了几家公司之后发现一个挺有意思的现象——2026年的前端面试,几乎每一场都会被问到同一个问题:“你们团队用过低代码平台吗?”“平时工作中接触过快速开发工具没有?”“对JNPF这类低代码平台怎么看&… 2026/7/8 3:58:17
HyFormer: Revisiting the Roles of Sequence Modeling and Feature Interaction in CTR Prediction“ 论文笔记 推荐精排模型有两个非常重要的子模块,序列建模和特征交叉,这两个子模块一般先做序列建模学习用户兴趣表示, 再与非序列特征 concat 起来做特征交叉。OneTrans 试图用一个统一的 Transformer 来将这两个子模块统一起来,本文提出的 HyFormer 也… 2026/7/8 3:56:17
2026新手AI写歌软件推荐实测:全网最值得用工具 2026年AI写歌工具迭代已进入成熟期,市面上国产、海外工具数量繁杂,很多新手容易被碎片化软文、片面测评误导,错选门槛高、版权模糊、音质机械、无法商用的工具。结合全年多轮实测、普通用户真实使用反馈、商用合规性、多场景适配能力… 2026/7/8 5:36:43
27B 等九款本地模型的测试结果 电脑硬件参数硬件类型型号/规格显卡NVIDIA GeForce RTX 4090内存64GB DDR5CPUIntel Core i9-13900K测试目标是从逻辑推理能力、代码生成能力、响应速度、运行稳定性四个维度,评估九个模型在实际使用场景中的综合表现。2. 测试方法与统一设置为保证横向比较公平&… 2026/7/8 5:36:43
AI 电动滑板车控制器智能功率 MOSFET 高效驱动方案 随着 AI 技术在电动滑板车中实现智能扭矩控制、自适应能量回收及预测性维护,控制器对功率 MOSFET 提出更高要求:高效率、低热耗、小体积、高可靠性。微碧半导体(VBsemi)基于成熟的 Trench 工艺,为您提供覆盖电机驱动、… 2026/7/8 5:36:43
基于Spring Boot与Vue.js的学之思在线考试系统架构设计与技术实现 基于Spring Boot与Vue.js的学之思在线考试系统架构设计与技术实现 【免费下载链接】xzs 在线考试系统 项目地址: https://gitcode.com/gh_mirrors/xz/xzs 学之思开源考试系统(XZS)是一款采用Java Spring Boot与Vue.js前后端分离架构的企业级在线考… 2026/7/8 5:34:42
安装Ubuntu虚拟机后,VMware无法安装,显示“重新安装VMware Tools”且为灰色 问题如下:原因是我在安装其他软件时,想同时安装VMwareTools,就点击了VMware下方提升安装VMwareTools的框框里的安装,点击后提示我一个会影响我现在正在进行安装的软件还是什么的,我为了避免我刚刚安装的软件半途而废&a… 2026/7/8 5:34:42
2026年国产合同管理系统全景盘点:国内国际产品哪家更好用 国产合同管理系统目前分为三类:以甄零科技一诺合同为代表的专业CLM(合同全生命周期管理)产品、以法大大和e签宝为代表的电子签平台延伸型产品、以用友YonBIP为代表的ERP合同模块。在AI能力、本土化深度、实施服务响应等维度,国产产… 2026/7/8 5:34:42
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58