daemon

What mechanisms does ssh-agent use to keep unlocked private keys secure in memory?

岁酱吖の 提交于 2019-12-06 09:05:09
问题 I'm working on a library to make quick access to KeepassX database files easier for power users. Right now the application is so short-lived in memory that security around the unencrypted KeePass database is not a huge concern. However, I'd like to add the ability to hold the database unlocked for a period of time in the background, similar to the way the KeepassX GUI does. This would allow immediate query of passwords without being prompted for the master password. This means there would be

D-Bus daemon的启动

落爺英雄遲暮 提交于 2019-12-06 08:35:13
D-Bus daemon是D-Bus的非常重要的一个服务,类似于IP网络中的路由器。 跟这个后台服务有关的应用程序包括: dbus-daemon: D-Bus的后台进程,作为D-Bus的消息中转枢纽,可分成system和session两种。 dbus-launch: 启动一个dbus-daemon,后面有不同的参数。一般而言,dbus-daemon启动后需要将其地址告诉给所有需要使用该bus的applications。 当系统启动时,需要使用dbus-launch来启动dbus-daemon,一般而言, 一般采用下面的命令启动dbus daemon以及dbus application (1) eval `dbus-launch --auto-syntax` (2) ./yourapp 第一行代码,采用eval来执行两次,第一次执行dbus-lauch --auto-syntax,除了启动dbus daemon之外,还输出了下面的内容: DBUS_SESSION_BUS_ADDRESS='unix:path=/tmp/dbus-6Z62FMmwf3,guid=5dbd92e4865a3f56880d2120000000d6'; export DBUS_SESSION_BUS_ADDRESS; DBUS_SESSION_BUS_PID=998; 第二次执行时就将环境变量DBUS

D-Bus 体系

99封情书 提交于 2019-12-06 08:18:33
有很多种IPC或者网络通信系统,如:CORBA, DCE, DCOM, DCOP, XML-RPC, SOAP, MBUS, Internet Communications Engine (ICE)等等,可能会有数百种,dbus的目的主要是下面两点: 1.在同一个桌面会话中,进行桌面应用程序之间的通讯 2.桌面程序与内核或者守护进程的通信。 Dbus是一套进程通信体系,它有以下几层: 1.libdbus库,提供给各个应用程序调用,使应用程序具有通信和数据交换的能力,两个应用程序可以直接进行通信,就像是一条socket通道,两个程序之间建立通道之后,就可以通讯了。 2.消息守护进程,在libdbus的基础上创建,可以管理多个应用程序之间的通信。每个应用程序都和消息守护进程建立dbus的链接,然后由消息守护进程进行消息的分派。 3.各种包装库,有libdbus-glib,libdbus-qt等等,目的是将dbus的底层api进行一下封装。 下面有一张图可以很方便说明dbus的体系结构。 dbus中的消息由一个消息头(标识是哪一种消息)和消息数据组成,比socket的流式数据更方便一些。bus daemon 就像是一个路由器,与各个应用程序进行连接,分派这些消息。bus daemon 在一台机器上有多个实例,第一个实例是全局的实例,类似于sendmail和或者apache

dbus-glib应用入门

家住魔仙堡 提交于 2019-12-06 08:16:16
操作系统:ubuntu16.04 需要安装的依赖包:sudo apt install libglib2.0-dev libdbus-glib-1-dev libdbus-1-dev 工作中有用到dbus-glib编程接口,官网文档已经不建议使用,但是还是简单小结一下,我是一个初级入门者,如果有问题还希望多多指教。 一、几个需要明确的概念: 1、Dbus概念 Dbus是一个进程间的通信机制,可以是应用与应用之间的通信,也可以是应用与系统之间的通信。 2、Dbus Daemon 在DBus的体系中,有一个常驻的进程 Daemon,所有进程间的交互都通过它来进行分发和管理。所有希望使用 DBus 进行通信的进程,都必须事先连上 Daemon,并将自己的名字注册到 Daemon 上,之后,Daemon会根据需要把消息以及数据发到相应的进程中。 3、通信机制 DBus 提供的最简单的一种通信方式是信号(Signal),应用程序可以发送一个信号到 Daemon 上,之后,Daemon 会根据信号的种类和谁希望得到信号等信息,把相应的数据发给每个希望得到信号的进程。 4、常用到各种名字 (1)DBUS name 在 DBus 中最为重要的名字是“Bus Name”,Bus Name 是一个每个应用程序(或是通信对象)用来标识自己用的。几乎可以当成是“IP”地址来理解。Bus Name有两种

D-BUS详细分析

别说谁变了你拦得住时间么 提交于 2019-12-06 08:14:58
一、概述 官方网站: http://www.freedesktop.org/wiki/Software/dbus ,但是如果要下windows版的代码最好不要从sourceforge下,多次下来的1.2.4版本都无法正常解压。可以从svn上拿,具体见后面的dbus编译部分。 从官方首页中可以看到这样一段描述D-BUS 的话:“D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a "single instance" application or daemon, and to launch applications and daemons on demand when their services are needed. ” 因此,D-BUS从本质来说就是进程间通信(inter-process communication)(IPC)的一个实现。他最初产生于Linux平台,是做为freedesktop

Is it possible to add an event handling to ZeroMQ to act when data is received/sent?

不问归期 提交于 2019-12-06 08:12:56
I have created two unrelated daemon processes in C in Linux Ubuntu. These processes are in the sleeping mode, they only wake up when the data is received, and perform the action implemented in the signal handler and again sleep. I have implemented this communication using SIGNAL IPC and message queue. Before sending the message, I send the signal SIGUSR1 and then send the data, and I wrote the signal handler for SIGUSR1 to perform required action. I would like to implement the same way of communication using ZeroMQ and I have been reading their guide to find out, whether ZeroMQ has any kind of

Setting up signal masks in a Linux C daemon

馋奶兔 提交于 2019-12-06 08:08:50
I have written a simple daemon in C, running on Linux. I'm trying to understand how to correctly setup signal masks. I have the following code in my daemon: struct sigaction new_sig_action; sigset_t new_sig_set; /* Set signal mask - signals we want to block */ sigemptyset(&new_sig_set); sigaddset(&new_sig_set, SIGCHLD); /* ignore child - i.e. we don't need to wait for it */ sigaddset(&new_sig_set, SIGTSTP); /* ignore Tty stop signals */ sigaddset(&new_sig_set, SIGTTOU); /* ignore Tty background writes */ sigaddset(&new_sig_set, SIGTTIN); /* ignore Tty background reads */ sigprocmask(SIG_BLOCK,

回调函数、同步、异步、阻塞、非阻塞、D-BUS等概念的理解

强颜欢笑 提交于 2019-12-06 08:08:12
同步、异步与阻塞、非阻塞 这个几个概念很容易被混淆。这些概念基本都是使用在多个部件进行协作或需要在一定时间内完成的场景中。 首先,将这几个概念的定义和应用场景分析一下: 同步、异步 同步 同步的概念是应用在线程上,线程之间的同步是指两个或多个线程对同一个资源的协调使用。 那么什么是同步函数哪? 仍然与线程和资源有关。这里的资源,可以看做线程的操作任务。通常,此时同步函数内有对资源的同步操作,如mutex等。 当一个线程调用一个同步函数时(例如:该函数用于完成写文件任务),如果该函数没有立即完成规定的操作,则该操作会导致该调用线程的挂起(将CPU的使用权交给系统,让系统分配给其他线程使用),直到该同步函数规定的操作完成才返回,最终才能导致该调用线程被重新调度。 异步 而异步函数,则是即使函数中的操作没有完成,没有结果返回,主线程也不会被阻塞。 而函数的任务则可能由其他线程或子线程来完成。完成后,再通知调用主线程,主线程内应该有相应的机制等待或响应处理结果(这里又是一个主线程对函数结果进行等待处理的过程)。 而当调用结果出来时,通知主线程的方式,即异步调用的实现方式有哪些? 回调函数(register, response)、event(windows)、消息(windows) 阻塞、非阻塞 不同的背景知识,对这些概念的使用范围也不同,这里特指网络IO的阻塞、非阻塞。另外多路IO,

DBus入门实践(1): 基本概念

☆樱花仙子☆ 提交于 2019-12-06 07:50:17
基本概念 可以参考下面链接.或者是官方的教程. 1. linux,dbus示例 Knowing some basic things by example, 推荐: http://laokaddk.blog.51cto.com/368606/943133 http://laokaddk.blog.51cto.com/368606/943148/ 2. Documents Reference D-Bus Specification would give some basic overview of the concepts https://dbus.freedesktop.org/doc/dbus-specification.html DBUS可以完成1对1的IPC, 多对多的IPC, 多对多 需要daemon,和android中的service_manger类似,如同router. DBus的组成 DBus = 对象+消息+link+DbusDaemon 对象 特征 其中对象是 一个 处理消息的实体, 因此其实是 服务端server 对象中有一个或者多个接口 每个interface有一个或者多个method 每个method都是对具体消息的处理 所以最终落实到消息, 消息共有四种,包括了signal,见下面的说明. 对象的寻址用路径表示 路径 在多对多的IPC中

D-Bus学习(三):消息

十年热恋 提交于 2019-12-06 07:44:01
  D-Bus的方式在移动手机操作系统中非常重要,包括Maemo,Moblin等以Linux为基础的操作系统。估计Andriod也大量使用。D-Bus的相关学习资料见: http://www.freedesktop.org/wiki/Software/dbus 。   消息通过D-Bus在进程间传递。有四类消息: 一、Method call消息:将触发对象的一个method 二、Method return消息:触发的方法返回的结果 三、Error消息:触发的方法返回一个异常 四、Signal消息:通知,可以看作为事件消息。   一个消息有消息头header,里面有field,有一个消息体body,里面有参数arguments。消息头包含消息体的路由信息,消息体就是净荷payload。头字段可能包括发送者的bus名,目的地的bus名,方法或者signal名等等,其中一个头字段是用于描述body中的参数的类型,例如“i”标识32位整数,"ii”表示净荷为2个32为整数。 发送Method call消息的场景   一个method call消息从进程A到进程B,B将应答一个method return消息或者error消息。在每个call消息带有一个序列号,应答消息也包含同样的号码,使之可以对应起来。他们的处理过程如下: 如果提供proxy