上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 59 下一页
摘要: 在UNIX系统中,守护进程遵循下列公共惯例: 若守护进程使用锁文件,那么该文件通常存放在/var/run目录中。注意,守护进程可能需要具有超级用户权限才能在此目录下创建文件。锁文件的名字通常是name.pid,其中,name是该守护进程或服务的名字。例如cron守护进程锁文件的名字是/var/run/crond.pid。 若守护进程支持配置选项,那么配置文件通常存放在/etc目录中。... 阅读全文
posted @ 2014-02-11 16:37 ITtecman 阅读(1110) 评论(0) 推荐(0) 编辑
摘要: 为了正常运行,某些守护进程实现为单实例的,也就是在任一时刻只运行该守护进程的一个副本。例如,该守护进程可能需要排它地访问一个设备。在cron守护进程情况下,如果同时有多个实例运行,那么每个副本都可能试图开始某个预定的操作,于是造成该操作的重复执行,这很可能导致出错。 如果守护进程需要访问一设备,而该设备驱动程序将阻止多次打开在/dev目录下的相应设备节点,那么这就达到了任何时刻只运行守护进程一个... 阅读全文
posted @ 2014-02-11 14:42 ITtecman 阅读(2848) 评论(2) 推荐(0) 编辑
摘要: 与守护进程有关的一个问题是如何处理出错消息。因为它没有控制终端,所以不能只是简单地写到标准出错上。在很多工作站上,控制台设备运行一个窗口系统,所以我们不希望所有守护进程都写到控制台设备上。我们也不希望每个守护进程将它自己的出错消息写到一个单独的文件中。对系统管理人员而言,如果要关心哪一个守护进程写到哪一个记录文件中,并定期地检查这些文件,那么一定会使他感到头痛。所以,需要有一个集中的守护进程出错记... 阅读全文
posted @ 2014-02-11 13:58 ITtecman 阅读(667) 评论(0) 推荐(0) 编辑
摘要: 在编写守护进程时需遵循一些基本规则,以便防止产生并不需要的交互作用。下面先说明这些规则,然后给出一个按照这些规则编写的函数daemonize。(1)首先要做的是调用umask将文件模式创建屏蔽字设置为0。由继承得来的文件模式创建屏蔽字可能会拒绝设置某些权限。例如,若守护进程要创建一个组可读、写的文件,而继承的文件模式创建屏蔽字可能屏蔽了这两种权限,于是所要求的组可读、写就不能起作用。(2)调用fork,然后使父进程退出(exit)。这样做实现了下面几点:第一,如果该守护进程是作为一条简单shell命令启动的,那么父进程终止使得shell认为这条命令已经执行完毕(也就没有了控制终端);第二,子进 阅读全文
posted @ 2014-02-11 11:39 ITtecman 阅读(1912) 评论(2) 推荐(1) 编辑
摘要: 先来看一些常用的系统守护进程,以及它们怎样和http://www.cnblogs.com/nufangrensheng/p/3513323.html、http://www.cnblogs.com/nufangrensheng/p/3513400.html、http://www.cnblogs.com/nufangrensheng/p/3513443.html中所述的进程组、会话和控制终端等概念相关... 阅读全文
posted @ 2014-02-08 20:20 ITtecman 阅读(1533) 评论(0) 推荐(0) 编辑
摘要: 守护进程也称精灵进程(daemon)是生存期较长的一种进程。它们常常在系统自举时启动,仅在系统关闭时才终止。因为它们没有控制终端,所以说它们是在后台运行的。UNIX系统有很多守护进程,它们执行日常事务活动。 阅读全文
posted @ 2014-02-08 19:21 ITtecman 阅读(247) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/nufangrensheng/p/3498723.html中介绍了pread和pwrite函数,这些函数在多线程环境下是非常有帮助的,因为进程中的所有线程共享相同的文件描述符。 考虑两个线程,在同一时间对同一文件描述符进行读写操作。 线程A:lseek(fd, 300, SEEK_SET);read(fd, buf1, 100);线程B:ls... 阅读全文
posted @ 2014-02-08 17:26 ITtecman 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 当线程调用fork时,就为子进程创建了整个进程地址空间的副本。回忆http://www.cnblogs.com/nufangrensheng/p/3509492.html中讨论的写时复制,子进程与父进程是完全不同的进程,只要两者都没有对内存作出改动,父进程和子进程之间还可以共享内存页的副本。 子进程通过继承整个地址空间的副本,也从父进程那里继承了所有互斥量、读写锁和条件变量的状态。如果父进程包含... 阅读全文
posted @ 2014-02-08 17:10 ITtecman 阅读(1186) 评论(0) 推荐(0) 编辑
摘要: 每个线程都有自己的信号屏蔽字,但是信号的处理是进程中所有线程共享的。这意味着尽管单个线程可以阻止某些信号,但当线程修改了与某个信号相关的处理行为以后,所有的线程都必须共享这个处理行为的改变。 进程中的信号是递送到单个线程的。如果信号与硬件故障或计时器超时相关,该信号就被发送到引起该事件的线程中去,而其他的信号则被发送到任意一个线程。 http://www.cnblogs.com/nufangr... 阅读全文
posted @ 2014-02-08 14:44 ITtecman 阅读(3669) 评论(0) 推荐(0) 编辑
摘要: 有两个线程属性并没有包含在pthread_attr_t结构中,它们是可取消状态和可取消类型。这两个属性影响着线程在响应pthread_cancel函数(http://www.cnblogs.com/nufangrensheng/p/3519175.html)调用时所呈现的行为。 可取消状态属性可以是PTHREAD_CANCEL_ENABLE,也可以是PTHREAD_CANCEL_DISABLE。... 阅读全文
posted @ 2014-02-07 17:38 ITtecman 阅读(787) 评论(0) 推荐(0) 编辑
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 59 下一页