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()函数可以让新创建的子进程继续执行父进程尚未执行的代码,那么父进程就可以退出运行了。但此时的子进程仍未脱离终端,如果需要进程以后台服务方式运行,那么就需要让进程脱离终端以守护进程方式运行。



相关推荐
一只积极向上的小咸鱼19 小时前
Windows中通过wsl运行Ubuntu
linux·运维·ubuntu
明明真系叻20 小时前
《量子计算》学习笔记:量子计算的基本定义(续)
笔记·学习·量子计算
ayaya_mana20 小时前
Linux环境下Node.js任意版本安装与pnpm、yarn包管理
linux·node.js·vim
乌龙玛奇朵51920 小时前
Finalshell建立连接
linux
Maple_land21 小时前
Linux进程第八讲——进程状态全景解析(二):从阻塞到消亡的完整生命周期
linux·运维·服务器·c++·centos
嵌入式分享21 小时前
嵌入式分享#41:RK3576改UART波特率【精简版】
linux·嵌入式硬件·ubuntu·嵌入式
爱吃生蚝的于勒21 小时前
【Linux】零基础学会Linux之权限
linux·运维·服务器·数据结构·git·算法·github
惜.己21 小时前
linux中jenkins正常启动外部无法访问
linux·servlet·jenkins
Cyan_RA921 小时前
Linux 远程Ubuntu服务器本地部署大模型 EmoLLM 中常见的问题及解决方案 万字详解
linux·运维·服务器·ubuntu·大模型·远程部署·emollm
minji...21 小时前
Linux相关工具vim/gcc/g++/gdb/cgdb的使用详解
linux·运维·服务器·c++·git·自动化·vim