首页 > 系统相关 >linux下更改进程为daemon的示例代码

linux下更改进程为daemon的示例代码

时间:2024-07-08 16:55:39浏览次数:17  
标签:fork daemon 示例 pid exit linux 进程 EXIT

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

linux下更改进程为daemon的示例代码


前言

使用chatgpt生成了一个更改进程为daemon的代码,无参函数,调用后直接更改进程为daemon
chatgpt:通义千问,文心一言


提示:以下是本篇文章正文内容,下面案例可供参考

一、daemon是什么?

Linux Daemon(守护进程)是运行在后台的一种特殊进程,独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件的进程。它不需要用户输入就能运行,而且提供某种服务,这种服务可能是对整个系统,也可能是对某个用户程序。

二、代码示例

void daemonize() {
pid_t pid, sid;
// 第一次fork
pid = fork();
if (pid < 0) {
exit(EXIT_FAILURE);
}
if (pid > 0) {
exit(EXIT_SUCCESS);
}
// 创建一个新的会话
sid = setsid();
if (sid < 0) {
exit(EXIT_FAILURE);
}
// 第二次fork
pid = fork();
if (pid < 0) {
exit(EXIT_FAILURE);
}
if (pid > 0) {
exit(EXIT_SUCCESS);
}
// 进程已经是session leader,不能进行控制终端
chdir(“/”);
// 重设文件权限掩码
umask(0);

// 关闭标准输入、输出和错误
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);

}
int main() {
daemonize();
while(1) {
// 执行你的工作52 printf(“Doing some work…\n”);
// 每隔5秒执行一次55 sleep(5);
}
return 0;
}

总结

函数直接可以使用,比较方便

标签:fork,daemon,示例,pid,exit,linux,进程,EXIT
From: https://blog.csdn.net/qq_37077309/article/details/140272964

相关文章

  • SpringBoot集成Kafka快速启动示例
    源码地址:https://github.com/ghdefe/kafka-demokafka消息发送接收示例1.启动kafka实例cat<<EOF>docker-compose.ymlversion:"2"services:zookeeper:image:docker.io/bitnami/zookeeper:3.8ports:-"2181:2181"-"......
  • 不定时修改Linux服务器端口和密码
    最近总是不想动,服务器的安全又不得不考虑,有时候还会忘记修改服务器的端口和密码,就诞生了下面的Shell脚本。脚本包含了日志记录,备份SSH文件,修改SSH端口,修改SSH密码,更新防火墙、发送加密邮件,设置定时任务。脚本目前只在Ubuntu系统测试,其它系统未测试,以下标红的信息一定要看。注意......
  • Linux中安装anaconda
    1.下载 官网下载:https://www.anaconda.com/download镜像下载:清华大学镜像站 比如:Anaconda3-2024.06-1-Linux-x86_64.sh 2.安装 bashAnaconda3-2024.06-1-Linux-x86_64.sh 一直按住回车,阅读用户协议。然后输入:yes: 按回车安装到默认位置,或者输入自定义安装......
  • Franka 在Linux上安装
    本章介绍如何安装libfranka和franka_ros(作为二进制包或从源代码构建),以及如何安装实时Linux内核。仅当您想使用ROSfranka_ros控制机器人时才需要。虽然libfranka软件包franka_ros可以在不同的Linux发行版上运行,但目前官方仅支持:Ubuntu18.04LTS BionicBeaver和ROS Mel......
  • Install the Operating System of Windows and Linux on the Laptop
    EnvironmentsWindows11Ubuntu24.04LTSLaptop:YogaPro14SARH7AllocatedDiskForUbuntu:146.5GBStepI:DownloadUbuntuPackageDownloadtheUbuntuISOfilefromtheofficialwebsite:https://ubuntu.com/download/desktopJustselecttheversion......
  • Linux 源码安装禅道
    安装ApacheHttpServer安装所需依赖yuminstallapr-develapr-util-develgccmakepcre-developenssl-devel安装Apache服务#下载最新版安装包wgethttps://dlcdn.apache.org/httpd/httpd-2.4.59.tar.gz#解压tarxfhttpd-2.4.59.tar.gzcdhttpd-2.4.59#配......
  • Linux系统权限控制详解(理论+实战)
    一、权限概述Linux权限控制是指对文件和目录的访问权限进行限制,以保护系统安全和数据完整性。其作用包括以下几个方面:保护系统安全:Linux系统中许多重要的配置文件和程序文件只有管理员才有权限访问,一般用户不能修改或删除这些文件,以防止系统被破坏。保护用户数据:每个用户的家......
  • 【linux/shell】如何创建脚本函数库并在其他脚本中调用?
    在Shell中创建和使用脚本库通常涉及以下几个步骤:1. 创建脚本库文件脚本库通常是包含了一系列可重用函数的Shell脚本文件。你可以使用文本编辑器创建一个脚本库文件,例如 mylib.sh 。nanomylib.sh在文件中,你可以定义一些函数,例如:#!/bin/bashfunctiongreet{  ech......
  • 香橙派编译linux内核支持ebpf和虚拟WIFI
    前言上一篇文章香橙派5plus上跑云手机方案一redroid(带硬件加速)中说了怎么运行redroid,这篇补一下怎么修改参数编译内核。补充上篇文章有个内容需要补充一下:更新完内核需要用下面的命令防止内核被apt更新,不然后面使用aptupdate又回到官方的内核(注意版本号,当前是1009)。sudo......
  • (麒麟Linux+PHP8+KingBase)麒麟Linux系统安装PHP8及人大金仓KingBase应用
    一、PHP8安装1.1环境CPU内核:aarch64OS:麒麟V104.19.90-23.34.v2101.ky10Web中间件:东方通THS/V6php:8.2.0db:KingbaseESV8R61.2下载https://www.php.net/releases/下载地址:https://www.php.net/distributions/php-8.2.0.tar.gz1.3解压cd/optsudotar-z......