Linux下使用Daemon实现服务器永久存活

12 篇文章 0 订阅
9 篇文章 0 订阅

很多服务器端设计者,很少会考虑到服务器永久存活或热替换的问题,貌似真的很少

其中永久存活最大的理论支持就是,我们如何真正的保证一组服务器持续的存在,即便宕机?

其实没有人能保证自己写的代码那么完美无瑕,因为它的存在就是必须去崩溃,必须暴露更多的错误才能更加完美无瑕,所以除了自己有大量的测试代码外,其实对于程序本身的测试很多是无法达到的,那么我们就需要更多的外部支持,那么在实际运营中,最好的就是Daemon这样的系统。

1、什么是Daemon

其实Daemon是一种进程守护者(守护进程),他保护你的系统免于遭受外部或异常错误而导致的崩溃,并在最短的时间内使其迅速恢复的一种机制或系统。

当然我在这里可不是教你怎么去写一种Daemon,因为对很多团队,那个成本很没必要(我们有更省钱的做法)。

那就是 http://libslack.org/ 的自制软件Daemon,它将自动保护任意进程,并保证程序持续稳定运行,直到你将其KILL或Stop掉,前提自然是要关闭掉Daemon本身。

2、安装Daemon

首先直接从地址:http://libslack.org/daemon/download/daemon-0.6.4.tar.gz 中下载Daemon的最新源码。

然后上传至Linux服务器

tar -xvf daemon-0.6.4.tar.gz

cd daemon-0.6.4

注意:在这一步是不可以配置Daemon的安装路径的,它将被默认安装至 /usr/local/bin 中,但会创建全局快捷方式,即可直接使用 daemon来运行程序。

./config

make -j8

make install-daemon

注意:这一步是为了安装Daemon的配置文件 默认被安装至 /etc/daemon.conf

make install-daemon-conf

3、配置Daemon以及参数说明

其实Daemon本身的参数是可以直接放入 /etc/daemon.conf 中的,那么基本上配置文件使用起来是非常容易的。

打开远端的daemon.conf

其配置文件格式为

配置名称(配置名称与参数列表间,使用空格分隔) 参数列表(多参数使用 英文字母 逗号分隔),例如:

test_server respwan

参数说明(部分):

-h, --help - 打印帮助信息

-V, --version - 打印版本信息

-v, --verbose[=level] - 设置冗余级别

-d, --debug[=level] - 设置调试级别

-C, --config=path - 指定特殊的配置文件路径,默认为:/etc/daemon.conf

-N, --noconfig - 将不读取任何配置文件信息即不读取 /etc/daemon.conf

-n, --name=name - 配置项目的名称,将载入目标名称参数信息

-X, --command=cmd - 定义特殊的后缀参数,例如需要参数启动的话

-D, --chdir=path - 改变运行目录

-m, --umask=umask - 改变目标执行程序的MASK

-U, --unsafe - 运行无安全状态执行程序

-S, --safe - 运行安全执行程序

-c, --core - 生成核心文件,用于调试

-r, --respawn - 当程序关闭时,是否重新启动程序

-f, --foreground - 前台运行程序

-p, --pty[=noecho] - Allocate a pseudo terminal for the client

-l, --errlog=spec - 定义DAEMON的目标错误日志位置

-b, --dbglog=spec - 调试日志位置

-o, --output=spec - 输出运行程序的日志

-O, --stdout=spec - 输出运行程序的输出

-E, --stderr=spec - 输出运行程序的错误日志

--running - 检测此名称的程序是否已经运行

--restart - 重新启动此程序名称程序

--stop - 结束此名称的程序

4、开始使用Daemon

使用时,首先配置目标程序的参数,默认情况下,会添加参数 respawn 用于检测当程序关闭时重新启动程序,例如daemon.conf中增加此选项

test_server respwan,chdir=/home/test_server

例如此时我要启动test_server那么,直接在shell中输入

daemon --name=test_server /home/test_server/test_server

此进程将被守护,直到整个运行周期完成。

此处启动的是位于:/home/test_server 下的 test_server 程序

5、应用场合以及扩展探索

此系统非常适合应用于需要强力保护的程序,如配合其他异常捕捉系统,将可以很好的保证整个服务器的运行以及崩溃BUG的修复情况。

也可以通过其他外部程序,控制或监控daemon的运行情况,可以合理的控制整个系统的开启以及结束,太棒了这东西

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值