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



相关推荐
韩楚风3 小时前
【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化
linux·服务器·性能优化·架构·gnu
陈苏同学3 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
Ambition_LAO3 小时前
解决:进入 WSL(Windows Subsystem for Linux)以及将 PyCharm 2024 连接到 WSL
linux·pycharm
Pythonliu73 小时前
茴香豆 + Qwen-7B-Chat-Int8
linux·运维·服务器
你疯了抱抱我3 小时前
【RockyLinux 9.4】安装 NVIDIA 驱动,改变分辨率,避坑版本。(CentOS 系列也能用)
linux·运维·centos
追风赶月、3 小时前
【Linux】进程地址空间(初步了解)
linux
栎栎学编程3 小时前
Linux中环境变量
linux
m0_689618284 小时前
水凝胶发生器,不对称设计妙,医电应用前景广
笔记
Ace'4 小时前
每日一题&&学习笔记
笔记·学习
挥剑决浮云 -4 小时前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记