LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 980|回复: 4

请教: 如何创建这样的守护进程

[复制链接]
发表于 2004-7-23 08:57:31 | 显示全部楼层 |阅读模式
请教创建一个脚本, 并作为守护进程运行. 它用来监视系统进程中myprocess的运行情况. 在每天晚上12:00:00, 检测系统中是否有进程myprocess存在, 如果存在,结束该进程,等待5秒后,重新启动进程myprocess.; 如果进程myprocess不存在, 启动该进程.http://www.linuxsir.cn/bbs/newth ... ead&forumid=60#
发表于 2004-7-23 09:38:38 | 显示全部楼层
守护进程是这样一个后台进程,它有以下必要条件:
1.没有控制终端
2.不是所属会话组的组长
3.不是所属进程组的组长

给一个最简单的例子(你自己在此基础上加以改进):

  1. [color=green]#!/bin/sh[/color]
  2. [color=green]#守护进程mydaemon[/color]
  3. cd /tmp
  4. while : ; do
  5.         ps -ef > tmpfile
  6.         sleep 5
  7. done
复制代码


  1. [color=green]#!/bin/sh[/color]
  2. [color=green]#守护启动进程start_daemon,可放在你的rcX.d里[/color]
  3. echo "Start my daemon now..."
  4. [color=green]#Place other pre-process here[/color]
  5. exec 0>&-
  6. exec 1>&-
  7. exec 2>&-
  8. exec setsid /your/path/mydaemon
复制代码



ps:
1.你说的功能用crond(这就是真正的守护进程)来实现即可
2.不能单纯使用&创建后台进程来创建守护进程,因为依然没有脱离控制终端
3.上面的例子不算是一个真正的守护进程,守护进程最好还是用c来写。
发表于 2004-7-25 10:49:54 | 显示全部楼层
 楼主| 发表于 2004-7-26 15:54:37 | 显示全部楼层
谢谢
发表于 2004-7-26 16:41:54 | 显示全部楼层
最初由 home_king 发表
守护进程是这样一个后台进程,它有以下必要条件:

.
.
.
.
ps:
1.你说的功能用crond(这就是真正的守护进程)来实现即可
2.不能单纯使用&创建后台进程来创建守护进程,因为依然没有脱离控制终端
3.上面的例子不算是一个真正的守护进程,守护进程最好还是用c来写。


用nohup就可以了哦。
nohup mydaemon & &>/dev/null
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表