当前位置: 首页 > news >正文

网站的汉化包怎么做电子商务网站建设的规划和实施

网站的汉化包怎么做,电子商务网站建设的规划和实施,创建网站的视频,qq浏览器直接进入在Linux系统中#xff0c;有一些特殊的进程悄无声息地运行在后台#xff0c;如同坚实的基石支撑着整个系统的运转。它们就是众所周知的守护进程(Daemon)。本文将为你揭开守护进程的神秘面纱#xff0c;探讨它们的本质特征、创建过程#xff0c;以及如何重定向它们的输入输出… 在Linux系统中有一些特殊的进程悄无声息地运行在后台如同坚实的基石支撑着整个系统的运转。它们就是众所周知的守护进程(Daemon)。本文将为你揭开守护进程的神秘面纱探讨它们的本质特征、创建过程以及如何重定向它们的输入输出。通过C代码示例你将领略到守护进程背后的编程哲学。 一、守护进程简介 守护进程顾名思义就是在系统后台默默守护的进程。它们通常在系统启动时创建并一直运行至系统关闭生命周期非常长。常见的守护进程包括cron调度器、SSH服务器(sshd)、Redis数据库、Nginx Web服务器等。 守护进程有两个主要特点: 在后台运行没有控制终端。因此内核永远不会为它们生成任何与终端相关的信号如SIGINT(中断)、SIGTSTP(停止)等。不受父进程影响。当创建守护进程时会让出与父进程的关联成为一个独立的进程组。 根据这一特性某些守护程序会将SIGINT和SIGHUP信号视为一种通知机制。 如果守护程序接收到这两个信号这通常意味着信号是由用户或服务本身触发的。 例如在nginx中当我们执行nginx -s reload命令以热更新配置文件时实际上是向nginx的主进程发送了一个SIGHUP信号。 此外在Linux系统中也有一些特定的守护进程以线程的方式运行例如pdflush它会定期将缓冲区中的数据刷新到磁盘。 守护进程本质上是一个孤儿进程其父进程在执行fork()之后会立即终止。因此守护进程最终会被init进程所收养。同时孤儿进程本身并没有害处。 二、创建守护进程的过程 在Linux系统中创建一个守护进程通常遵循一个固定的模板其过程相对标准化很难省略其中的任何步骤。 创建守护进程的步骤基本如下: 分身:父进程fork出子进程然后父进程退出。 执行一个fork()创建出子进程之后父进程退出子进程继续执行如果守护进程是从shell 中创建的那么守护进程应该让出终端控制不能占用。子进程一定不会作为一个进程组的首进程才有可能释放与当前终端的所有关联。 开启新会话:子进程调用setsid()脱离所有终端创建新会话。 一般情况下终端下直接运行的进程当终端被关闭时运行的进程也会退出执行调用成功后终端是否被关闭将不会影响到子进程的运行。 更改工作目录:防止意外占用目录。 重置umask:确保有创建文件/目录的权限。 关闭已打开文件描述符:包括标准输入/输出/错误防止影响后续程序运行。 因为标准输入、标准输出以及标准错误和终端相关而我们的守护进程和任何终端都不产生联系留着这
3 个文件描述符完全没有必要。但是我们又不能直接关闭掉这
3 个文件描述符万一程序在某个地方执行了 printf()那么就会出现错误。 重定向标准输入/输出/错误:为日志等做准备。 处理信号:决定如何响应常见信号。 下面是一段简单的代码演示了创建守护进程的基本流程: #include iostream #include unistd.h #include sys/stat.h #include fcntl.hvoid daemonize() {// 分身父进程退出pid_t pid fork();if (pid 0) exit(EXIT_FAILURE);if (pid 0) exit(EXIT_SUCCESS);// 子进程继续开启新会话if (setsid() 0) exit(EXIT_FAILURE);// 更改工作目录chdir(/);// 重置umaskumask(0);// 关闭已打开文件描述符for (int i sysconf(_SC_OPEN_MAX); i 0; i--) {close(i);}// 重定向标准输入/输出/错误open(/dev/null O_RDWR);dup(0);dup(0); }int main() {daemonize();// 守护进程主循环while (1) {sleep(1);std::cout Daemon running... std::endl;}return 0; }三、输入输出重定向 你可能已经注意到上面的代码中我们重定向了守护进程的标准输入/输出/错误流。这是因为终端关闭时如果进程还持有这些文件描述符就会收到SIGHUP信号而退出。而我们的守护进程并不希望如此。 重定向的方式是先打开/dev/null(空设备文件)然后使用dup2()系统调用将标准输入/输出/错误流的文件描述符指向这个空文件。之后守护进程所有的输入输出都将被丢弃不会影响到正常运行。 在程序内如果我们想要将
STDIN_FILENO、STDOUT_FILENO 以及
STDERR_FILENO 这
3 个描述符重定向到
/dev/ null 的话就需要借助
dup2() 这一系统调用 。 int fd open(/dev/null O_RDWR); dup2(fd STDIN_FILENO); dup2(fd STDOUT_FILENO); dup2(fd STDERR_FILENO);如果我们把文件描述符看作是指针的话那么
dup2(A,
B) 的作用就是把
A
指向的东西给到
B让
B的指向和
A
的指向相同。 四、守护万象更新潮流 守护进程作为Linux系统不可或缺的一员扮演着重要的角色。从上世纪90年代开始守护进程编程的理念就根深蒂固影响着整个Linux生态的发展。然而近年来随着容器和微服务的兴起传统的守护进程模式也面临着一些挑战和质疑。守护进程的未来将如何演进?它们是否会被新技术所取代?这些都将是值得我们继续关注和探讨的话题。而无论形式如何变迁稳定、高效、隐身于后台的设计思想必将patrimony代代相传。
http://www.hkea.cn/news/14364948/

相关文章:

  • 长沙做网站开发多少钱企业做网站的多吗
  • 提出网络营销思想的网站改版计划17网一起做网店普宁
  • 做网站要学哪些代码首码网站免费推广
  • 网站建设需要几个阶段宁波正规优化seo公司
  • 黄石建设网站公司图片网站开发
  • 运城做网站价格个人网站怎么做支付功能
  • 云南网站开发公司介绍wordpress用的什么框架
  • 企业建网站的好处企业形象通用网站
  • 做网站需要什么样的电脑配置物流托运
  • 口碑好的常州网站建设免费开商城网站吗
  • 创建网站公司好小白怎么做跨境电商
  • 如何获取网站根目录链接科技公司取名
  • 旅游电商网站有哪些如何在社交网站上做视频推广
  • 网站怎么制作的展厅宣传片
  • 个人网站学生作业深圳企业网站建设报价
  • 外贸网站建站j网页制作
  • 学做饺子馅上那个网站专业定制房地产网站建设
  • 网站建设价格需要多少钱国人在线做网站
  • 贵阳做网站好的公司有哪些网推所什么意思
  • 吉林seo排名公司什么是搜索引擎优化
  • 广州响应式网站网站建设图文片
  • 浙江省邮电工程建设有限公司网站编程软件手机
  • 广东建设职业技术学院网站网站建设方案书 人员资金安排
  • 邢台企业做网站网站如何做301转向
  • 怀远县建设局门户网站深圳安全教育平台
  • 织梦网站更换域名seoul是什么国家
  • 自己有网站怎么做竞价医疗网站建设多少钱
  • 网站建设人员工作要求湘潭网站设计
  • 淄博网站制作方案徐水住房建设局网站
  • 衡水网站建设公司联系电话公司管理软件用什么好