linux daemontools 进程监控安装使用方法

by pxz


发布于: 2014-12-22 所属分类: 工具 linux 服务器 标签: daemontools  317


<p>daemontools是一组用于管理UNIX服务的工具。 supervise 监督服务, 它会自动启动服务并在服务停止时重新启动服务.</p> <h3 id="h3--daemontools-"><a name="一. 安装 Daemontools:" class="reference-link"></a><span class="header-link octicon octicon-link"></span>一. 安装 Daemontools:</h3><p>提示: 以下所有命令需在root下执行</p> <pre><code>mkdir -p /package chmod 1755 /package cd /package wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz tar -xpf daemontools-0.76.tar.gz rm -f daemontools-0.76.tar.gz cd admin/daemontools-0.76 package/install </code></pre><p>如果安装失败, 执行以下操作</p> <pre><code>vim ./src/conf-cc 在第一行后面加上 -include errno.h wq 保存退出 package/install 重新安装,即可安装成功 </code></pre><h3 id="h3--daemontools"><a name="二. 启动 Daemontools" class="reference-link"></a><span class="header-link octicon octicon-link"></span>二. 启动 Daemontools</h3><pre><code>/command/svscanboot & </code></pre><p>如果想让系统开机时自动启动, 可以在 /etc/rc.local 文件把<code>/command/svscanboot &</code>加上</p> <h3 id="h3--daemontools-"><a name="三. 检查 Daemontools 运行状态" class="reference-link"></a><span class="header-link octicon octicon-link"></span>三. 检查 Daemontools 运行状态</h3><pre><code>ps -ef | grep svscan </code></pre><p>正常情况下, 会有以下两个进程</p> <pre><code>root 21942 19778 0 20:07 pts/3 00:00:00 /bin/sh /command/svscanboot root 21944 21942 0 20:07 pts/3 00:00:00 svscan /service </code></pre><p>svscan是svscanboot的子进程, 监控着/service目录</p> <h3 id="h3--daemontools-"><a name="四. Daemontools 使用" class="reference-link"></a><span class="header-link octicon octicon-link"></span>四. Daemontools 使用</h3><p><strong>1 . 编写执行脚本</strong></p> <p>新建需要长期运行的进程脚本 命名为 run 并赋予执行权限 chmod +x ./run</p> <p>run脚本必须是长期运行的, 不能是fork()后在后台运行的</p> <p>脚本示例:</p> <pre><code>#!/bin/sh setuidgid zsg ssh -o TCPKeepAlive=yes -o ServerAliveInterval=5 -o ServerAliveCountMax=5 -N -R 23690:localhost:3690 root@122.122.122.122 </code></pre><p>注意不要加 -f 参数, 加了-f后会在后台运行, daemontools 将无法对run脚本正常监控.</p> <p>setgiduid指定某个用户执行</p> <p><strong>2 . 在 /service 下新建目录 svnsd (目录名随意) , 把上一步新建的run脚本程序 移至该目录</strong></p> <p><strong>3 . 检查是否正常监控</strong></p> <pre><code>ps aux | grep supervise </code></pre><p>如果进程名称能找到 supervise sdsvn 表示sdsvn目录中的run脚本进行已经在监控中.</p> <h3 id="h3--daemontools-"><a name="五. Daemontools 脚本调试" class="reference-link"></a><span class="header-link octicon octicon-link"></span>五. Daemontools 脚本调试</h3><p>如果脚本运行有问题, 需要先停止脚本临控服务, 再手动启动run脚本查看错误信息输出</p> <pre><code>cd /service/svnsd svc -d . #停止对该脚本的监控 ./run #手动执行run脚本查看错误信息 </code></pre><p>当解决了错误之后, 执行 <code>svc -u /service/svnsd</code> 重新启用服务监控</p> <p>也可以通过查看脚本输出日志查看错误</p> <pre><code>cd /service/svnsd tail -n5 log/main/current </code></pre>

发表评论

暂无评论

搜索
用户登陆