和守护进程通信

要和一个守护进程通信,你要向它发送信号,让它以某种方式相应。

例如:强行要求一个守护进程重新读取它的配置文件,或者改变守护进程的行为,或者指示守护进程结束运行。

使用信号与守护进程通信。

守护进程中添加信号捕捉函数

void catch_Signal(int Sign)

{

switch(Sign)

{

case SIGTERM:

exit(EXIT_SUCCESS);

}

}

通过shell脚本结束守护进程。

#!/bin/sh

WHOAMI=`whoami`

PID=`ps -u $WHOAMI | grep abc | awk ‘{print $1}‘`

if (test "$PID" != "") then

kill $PID

fi

注意:脚本文件的名称不要有‘abc’字样,不然执行ps的时候会把脚本名称也print出来

使用FIFO与守护进程通信。

读FIFO
void readfifo()
{
    int len = 0;
    char buf[1024];
    memset(buf, 0, sizeof(buf));
    int fd = open("/home/test/1/fifo1", O_RDONLY);
    while ((len = read(fd, buf, sizeof(buf))) > 0)
    {
        printf("%s\n", buf);
    }
    close(fd);
    return;
}
写FIFO
void writefifo()
{
    int len = 0;
    char buf[1024];
    memset(buf, 0, sizeof(buf));
    int fd = open("/home/test/1/fifo1", O_WRONLY);
    scanf("%s", buf);
    write(fd, buf, sizeof(buf));
    close(fd);
    return;
}

复制去Google翻译翻译结果

时间: 2024-10-05 13:32:28

和守护进程通信的相关文章

linux创建守护进程

守护进程deamon 是一个后台进程,无需用户输入就能运行,用来在系统后台提供某种服务. 常见的守护进程有Wbe服务器.邮件服务器以及数据库服务器等等.守护进程不能控制终端,所以任何的输入和输出都需要做特殊处理. 创建守护进程的过程并不复杂,首先执行fork(),将父进程退出. 一个守护进程是从shell脚本或者命令启动,守护进程和应用程序不同的地方是守护进程不是交互式的,它在后台运行,不控制终端. 守护进程既不需要从标准输入设备读入信息,也不需要从标准输出设备输出信息. 下一步是在子进程中调用

asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二)

原文:asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二) 续上一篇文章:asp.net core2.0 部署centos7/linux系统 --安装部署(一),遗留的问题而来,对程序添加守护进程,使网站可以持续化的运行起来. ? 1.介绍supervisor ?? ?Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,

第二十一天:进程间的通信及守护进程

进程的定义:一个其中运行着一个或者多个线程的地址空间和这些线程所需要的系统资源.通俗的说就是正在运行的程序.可以使用ps -ajx查看进程,每个进程都会被分配一个唯一的数字编号,为进程标识符(PID)父进程的描述符称为(PPID),STAT表示系统进程的运行状态,其中,S表示睡眠,R表示可运行,D表示等待,T表示停止,Z表示死进程或僵尸进程(子进程存在,父进程死亡,编写代码绝对不能出现). 使用fork函数创建进程.fork复制当前进程,在进程表中创建一个新的表项,新的表项中的许多属性与当前的进

python—day29 守护进程、互斥锁、模拟抢票、IPC通信机制、生产者消费者模型

1.守护进程: 什么是守护进程,假如你是皇帝,每日每夜守护你的就是太监,守护进程就相当于太监,当皇帝驾崩后太监也需要陪葬,所以守护进程当父进程销毁时就一起销毁: 1 from multiprocessing import Process 2 3 import time 4 5 def task(name): 6 7 time.sleep(0.5) 8 print('%s' %name) 9 10 11 if __name__ == '__main__': 12 p = Process(targe

进程对象的其他方法、守护进程、使用多进程实现 socket tcp协议 server端的并发(抢票程序)、队列、进程之间的通信(IPC)

# 进程对象的其他方法 from multiprocessing import Process import time class MyProcess(Process): def __init__(self, a, b): # 为了给子进程传递参数 super().__init__() self.a = a self.b = b def run(self): print("子进程开始执行") time.sleep(2) print("子进程结束", self.a,

linux 进程通信之 守护进程

守护进程(Daemon) Daemon(精灵)进程,是linux中的后台服务进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的时间.一般采用以d结尾的名字.从下面的进程信息可以看出,守护进程都是[?]. colord 1160 0.0 0.2 399424 14520 ? Ssl 6月06 0:00 /usr/lib/colord/colord Linux后台的一些系统服务进程,没有控制终端,不能直接和用户交互.不受用户登录,注销的影响,一直在运作着,他们都是守护进程.如ftp

守护进程的作用

Linux在启动时需要启动很多系统服务, 它们向本地和网络用户提供了 Linux 的系统功能接口, 直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程(Daemons) 来执行的.编写守护进程实际上是把一个普通进程按照守护进程的特性进行改造.比如, 网络通信服务中的守护进程需要能同时接受多个请求, 它不断地在侦听端等待远程的连接请求, 收到请求后,创建一个子进程, 让其负责与远端的通信, 而自己则继续返回侦听.子进程和父进程间的通信采用消息机制, 因此守护进程的开发涉及到子进程.

进程通信(转)

1.定义: 进程通讯是指进程之间的信息交换. 在进程之间要传送大量数据时,就需要使用进程通讯. 进程互斥和同步需要交换一定的信息,它们也可归为进程通讯,属于低级的进程通讯.低级的原因在于 (1).效率低,生产者每次只能向缓冲池投放一个产品(消息),消费者每次只能从缓冲池中取得一个消息 (2).通讯对用户不透明,OS职位进程之间的通讯提供了共享存储其. 2.进程通讯特点: 使用方便.OS隐藏了实现进程通讯的具体细节,向用户提供了一组用于实现高级通信的命令(原语),用户可方便的直接利用它实现进程之间

进程通信

1.定义: 进程通讯是指进程之间的信息交换. 在进程之间要传送大量数据时,就需要使用进程通讯. 进程互斥和同步需要交换一定的信息,它们也可归为进程通讯,属于低级的进程通讯.低级的原因在于 (1).效率低,生产者每次只能向缓冲池投放一个产品(消息),消费者每次只能从缓冲池中取得一个消息 (2).通讯对用户不透明,OS职位进程之间的通讯提供了共享存储其. 2.进程通讯特点: 使用方便.OS隐藏了实现进程通讯的具体细节,向用户提供了一组用于实现高级通信的命令(原语),用户可方便的直接利用它实现进程之间