Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
El proceso Daemon (elf) es un proceso de servicio en segundo plano en Linux. Es un proceso con una larga vida útil. Generalmente es independiente del terminal de control y periódicamente realiza ciertas tareas o espera que ocurran ciertos eventos.
chdir()
Función: para evitar ocupar el sistema de archivos desmontable, también puede cambiarlo a otras rutas;#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
void daemonize(void)
{
pid_t pid;
/*
* 成为一个新会话的首进程,失去控制终端
*/
if ((pid = fork()) < 0) {
perror("fork");
exit(1);
} else if (pid != 0) /* parent */
exit(0);
setsid();
/*
* 改变当前工作目录到/目录下.
*/
if (chdir("/") < 0) {
perror("chdir");
exit(1);
}
/* 设置umask为0 */
umask(0);
//重定向0,1,2文件描述符到 /dev/null,因为已经失去控制终端,再操作0,1,2没有意义.
close(0);
open("/dev/null", O_RDWR);
dup2(0, 1);
dup2(0, 2);
}
int main(void) {
daemonize();
while(1);
/* 在此循环中可以实现守护进程的核心工作 */
}
Cuando ejecuta este programa, se convierte en un proceso demonio y ya no está asociado con la terminal actual. No puede verlo con el comando ps. Debe ejecutar el comando ps con el parámetro x para verlo. Además, puede ver que cerrar la ventana de la terminal o cerrar sesión no afectará la ejecución del demonio.
¿Por qué es necesario separar el proceso del demonio del terminal de control?
La razón por la que está separado del terminal es para evitar que el proceso sea interrumpido por información generada por cualquier terminal, y su información durante la ejecución no se mostrará en ningún terminal.Dado que en Linux la interfaz a través de la cual cada sistema se comunica con los usuarios se llama terminal, cada proceso que comience a ejecutarse desde esta terminal dependerá de
Adjunto a este terminal, este terminal se denomina terminal de control de estos procesos. Cuando el terminal de control está cerrado, los procesos correspondientes se cerrarán automáticamente. Sin embargo, muchas de nuestras aplicaciones no quieren salir del proceso sin desactivar las interrupciones, como bases de datos, servicios web, servicios de juegos, etc. En este momento, necesitamos utilizar un proceso demonio.
Este artículo presenta el concepto de proceso demonio, los pasos de programación del proceso demonio, la implementación del código y la función del proceso demonio. Ayúdenos a comprender los principios operativos de los programas en segundo plano, etc.