Daemon——希腊神话中介于神与人之间的半人族,亦称做恶魔。在古希腊,守护神(daemon)是一个人灵魂的看护者,游荡在人与神的世界之间。有人认为他是保护人类与事物的守护神,但也有人认为他是折磨,诱惑,绑架人类的恶魔。具体的故事找不到。
关机时提示“daemon”怀疑可能是内部逻辑出问题了,原本的虚拟机状态为“挂起客户机”状态;将该虚拟机“关机”,再“开机”,就是所谓的重启,试一下如果问题仍然存在;这样的话可能是权限的问题,在桌面上右键单击VMWare的图标,选择“以管理员身份运行”,在VMWare中,再次点击“启动客户机”看一下虚拟机启动画面恢复没有,如果恢复了,再关机,看看有没有提示。如果没有,需要创建虚拟机硬盘,名称位置可以保持默认,大小最好设置在10G以上,可根据实际需求进行设置。之后设置镜像文件,完成新建之后点击完成。
Server接收用户通过client发来的请求,按照路由规则分发,交给后端处理完毕后将结果返回至client
之前说到 start() 中的 NewDaemon() 是初始化Daemon的核心逻辑,APIServer的创建在 start() 中。
初始化router的过程同样在 start() 里。
那么,还需要关注一下middleware。它的初始化在start中的 initMiddlewares() ,形参用到了cliapi、serverConfig、pluginStore。
pluginStore在上一行的 pluginNewStore() 完成初始化,它返回一个Store对象,其中最重要的是定义了注册回调函数的接口
initMiddlewares 定义了不同的中间件,包括:
重新回到上面的 handlerWithGlobalMiddlewares() 函数,它内部有一个循环,遍历了使用的middlewares,对每个middleware调用 WrapHandler()
Middleware的作用docker的解释是:
WrapHandler对于不同的middleware有不同的实现版本,它的原型是
在创建好APIServer,连接上Daemon,创建、设置好Router之后,APIServer就可以向外提供服务了,它提供的是一个>
docker run指定的命令如果不是那些一直挂起的命令(比如运行top,不断echo),就是会自动退出的。-d命令是设置detach为true,根据官方的文档,意思是让这个命令在后台运行,但并不是一直运行(我们在一个正常的Linux Terminal中运行/bin/bash,运行完了也就完了,不会一直挂着等待响应的,所以确实没办法用daemon方式来跑/bin/bash)。
这个地方官方早期和现在的文档也确实有些前后不一致,现在是detach,早期的文档说指定-d以daemon方式来运行容器,可能存在一定的误解。
另外,如果你需要跑容器里的bash,直接运行docker run -i -t CONTAINER_NAME /bin/bash 就可以了,如果觉得参数比docker attach多,可以设置一个别名(alias)来解决:
alias dockerbash='docker run -i -t CONTAINER_ID /bin/bash'
设置好别名后,直接运行dockerbash就可以进入容器的bash了
虚拟光驱软件DAEMON TOOLS使用说明2007-05-25 23:31虚拟光驱软件DAEMON TOOLS使用说明
DAEMON是一款非常不错的虚拟光驱软件。它小巧、灵活、功能强大。最新的版本是v40x支持Win 9x/ME/NT/2000/XP。
一、软件的安装
安装十分简单,一路“Next'即可完成。在win2000和WinXp下,会提示没有数字签名,不用理它,继续就是了。与以前的v2x版不同的是,它虚拟出来的光驱,系统认为是一个DVD驱动器 :)
二、软件的使用
DAEMON的主要功能就是虚拟光驱,因此它并不具有制作光盘镜象的功能。运行DAEMON后,它会在系统托盘区生成一个小图标,用鼠标右键单击它会弹出一个菜单,DAEMON的全部功能都包含在这里面。具体的操作如下:
1、使用鼠标右键单击小图标,这时会弹出一个菜单。
2、我们可以在“Virtual CDROM”的“Set number of devices”中设置虚拟光驱的数量,其中有“Disable(不使用)”、“1 drive'、“2 drives”等,最多可支持四个虚拟光驱。和同类软件相比,四个虚拟光驱的确太少,但是对于没有特殊要求的一般用户已经足够了。DAEMON 对虚拟光驱的设置是即设即用,不需要重新启动电脑,这正体现了它的灵活。
3、接下来需要在“Virtual CDROM”的“Device 0:No media'中选择“Mount image(加载镜象)”,这时会弹出一个文件选择框,用户选择好镜象文件后点击“打开”即可完成加载。DAEMON支持CUE;CCD;ISO;BWT这四种常见的镜象格式。 这时我就可以在“我的电脑”中对其进行操作了。
4、对于已经加载的虚拟光驱,我们还可以进行“Eject tray/Load tray(弹出/放入光盘)”和“Unmount image(卸载镜象)”的操作。
注:第3、4部用鼠标左键点击任务栏图标亦可看到。
5、在“Emulation”中,用户可以设置加密算法,来使用那些经过加密处理的光盘镜象。目前支持三种算法:Safedisc、Securom和Laserlok,其中Safedisc被EA游戏公司广泛地应用在其游戏光盘上,如《极品飞车》就采用了这项技术。 在“Options”中,用户可以设置“Automount(自动加载)”、“Autostart(自动开始)”等项目。
DAEMON作为一款优秀的虚拟光驱软件,它的系统资源占有率是同类软件中最低的,你根本感觉不到它的存在。完成对虚拟光驱的加载后,用户可以将它的主程序关闭,并不会影响其正常的工作。DAEMON可以和一些光盘镜象制作软件很好地合作,来完成虚拟光驱的任务。同时我也希望DAEMON能在下个版本中增加虚拟光驱的数量,也能够支持更多种格式的镜象文件。
DAEMON可以打开的映像文件:
Cue映像文件(cue)
标准的iso映像文件(iso)
CloneCD映像文件(ccd)
Blindread映像文件(bwt)
Media descriptor文件(mds)
DiscJuggler映像文件(cdi)
虽然他没有正式支持nreo的映像文件(nrg),但使用“所有文件()”也是可以打开的。
虚拟光驱软件,我用过了,挺好用的。
装完后右击右下角的图标,选虚拟CD、DVD-ROM,设备0:[F:(这不一定啦)]空,装载映像,选择就可以了。
下载:>
前几日,遇到一个问题,需要收集在容器里一个 daemon 进程的输出日志。一般来说,容器里的进程只需要打日志到标准输出就可以了,但 daemon 进程比较特殊,daemon 进程没有控制终端,也没有继承相应的文件描述符。
上述问题可以转化为一个通用的问题:如何让一个 daemon 进程输出日志到当前的控制台上?
另外,supervisor 及 docker 在启动的时候,是不允许启动后台进程的,这是为什么呢?
在解答之前,先来看一些相关的基础知识。
查看一个进程的 pid,gpid,spid,command
上述命令打印 32036 号进程,父进程为 1098,进程组号为 32036,会话号为 32036。
打印前台进程组的进程信息。
查看进程树。
上面的程序实现了一个简单的 daemonize 例程。有以下一些地方还没有考虑到:
写一个简单的 shell 程序进行测试:
编译运行,注意现在的工作路径为 /,可执行程序要写绝对路径。
查看进程:
可以看到 daemon 进程 pid 为 30467, 其父进程为 init 进程,组长为 30466,为会话首进程,session id 也是 30466。
可以 tailf testlog 查看日志输出。
以上就是关于有谁能告诉我Daemon在希腊神话里是怎样一个人物呢全部的内容,包括:有谁能告诉我Daemon在希腊神话里是怎样一个人物呢、VMware centos 6.5关机时提示daemon、2. daemon详解——APIServer等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!