C++码农日记笔记

环境搭建

Linux下的Qt Creator环境搭建

https://blog.csdn.net/Chuangke_Andy/article/details/122928669

文本文件在Windows系统与Linux系统中的换行符不同,在Windows中为CR+LF(回车+换行),而在Linux中为LF(换行)。Xftp在传输文本文件时将自动根据目标系统转换文件的换行符

第09天 在Linux系统中以守护进程方式运行程序

如何让一个进程变成守护进程让一个进程变成守护进程,分为如下步骤。

1)创建子进程,终止父进程由于守护进程是脱离控制终端的,因此要先创建子进程,然后终止父进程,造成进程已经运行完毕的假象。在这之后,所有的工作都在子进程中完成,而用户在终端里可以执行其他命令,这样可以先在形式上做到与控制终端的脱离。让一个进程以后台方式运行,可以通过fork()函数实现。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程。一个进程调用fork()函数后,系统先给新的进程分配资源(如存储数据和代码的空间),然后把原来进程的所有值都复制到新进程中,只有少数值与原进程的值不同,这相当于克隆了一个进程。新旧两个进程可以做完全相同的事,也可以做不同的事,这可以由初始参数决定。

先看一下fork()函数的一个简单例子,见代码清单2-14。

代码清单2-14:

如代码清单2-14所示,在标号①处,在代码processId=fork()执行之前,只有一个进程在执行这之前的代码,但在这条语句之后,就变成两个进程在执行了。在fork()函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是父进程,另一个是子进程。这两个进程将要执行的下一条语句都是标号②处的if(0 ==processId)。fork()函数只会把下一个要执行的代码以及之后的代码复制到新进程。fork()函数可能有以下三种不同的返回值。

在父进程中,调用fork()函数成功,并且新创建子进程的进程ID>0。此时输出的信息见标号③处。在子进程中,fork()函数返回0。此时输出的信息见标号④处。如果出现错误,则fork()函数返回一个负值。此时可以通过errno的值判断错误原因。因此,可以通过fork()函数返回的值来判断当前进程是子进程还是父进程。通过调用fork()函数可以让新创建的子进程继续执行父进程尚未执行的代码,那么父进程就可以退出运行了。但此时的子进程仍未脱离终端,如果需要进程以后台服务方式运行,那么就需要让进程脱离终端以守护进程方式运行。



相关推荐
H_oRIZoN_7 小时前
Linux入门DAY23(C语言树形结构)
linux·c语言·数据结构
kdxiaojie7 小时前
Linux USB驱动阅读笔记(1)
linux·笔记·学习·usb
JacksonMx7 小时前
Java CompletableFuture 异步编程实战:从入门到架构师避坑指南
linux·数据库·python
半生过往8 小时前
前端学 Java 课程笔记
java·前端·笔记
九硕智慧建筑一体化厂家8 小时前
楼宇自控|智慧建筑核心引擎!楼宇自控系统,赋能建筑高效低碳运维
运维·人工智能·笔记·智慧城市
byte轻骑兵8 小时前
【BlueZ 】蓝牙 SDAP 协议入门:BlueZ 中设备服务发现的基础逻辑
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
mounter6258 小时前
GCCRS 突破与 Rust 入核:Linux 工具链的重大变革
linux·开发语言·rust·linux kernel·kernel
GGMM7899 小时前
施耐德 VX5A1HC90110(VX5A1HD9011)ATV61/ATV71 90‑110KW 电源驱动板详解
笔记·变频器·变频器维修
Wang's Blog10 小时前
PostgreSQL笔记48: 全文检索与向量检索的对比与混合检索实践
笔记·postgresql·全文检索
liuyicenysabel10 小时前
Flask 个人站 iProfile 上线笔记(k3s + Nginx + Let‘s Encrypt)
笔记·nginx·flask