Centos下Daemontools及expect安装

此Daemontools并非windows下的Daemontools。该工具负责将你的进程在后台以daemon方式运行的。如果你的应用不小心被杀掉之后,自己就会起来。也就是会让你的程序变成杀不死的小强。 比如数据收集,监控等程序都需要不间断的运行。

Daemontools

安装方法:

  1. 下载,解压daemontools-0.76.tar.gz
  2. 进入 admin/daemontools-0.76
  3. admin/daemontools-0.76/src/error.h中的extern int errno;替换为#include <errno.h> 不然可能会报如下错误 /usr/bin/ld: errno: TLS defini tion in /lib/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o
  4. 编译安装 执行 package/install
实例:

通过supervise启动tomcat

  1. 创建run脚本,脚本名字必须为run

    1
    2
    3
    mkdir -p /opt/app/tomcat-daemon
    cd /opt/app/tomcat-daemon
    vim run
  2. run脚本中输入如下内容

1
2
3

#!/bin/bash
exec /opt/app/tomcat9/bin/catalina.sh run
  1. 修改脚本权限 chmod +x run
  2. 以后台方式启动 nohup supervise tomcat-daemon/ > /opt/app/tomcat9/logs/catalina.out &

注意: supervisor只能监控前台程序, 如果程序是通过fork方式实现的daemon服务,则不能用它监控.
catalina.sh run方式跟start启动方式不一样,start是以后台方式启动。


expect 安装

这个工具是用来部署脚本完成自动SCP方式传输文件用的,文章最后会附上我写的一个小demo。

先安装tcl
1.下载,解压tcl,进入unix目录
2.编译安装

1
2
3
./configure
make
make install


安装expect
1.下载,解压expect
2.编译安装

1
2
3
4
./configure --with-tclinclude=/usr/src/tcl8.6.2/generic/
--with-tclconfig=/usr/local/lib/
make
make install

注意: 执行第一条指令时请确认 "/usr/src/tcl8.6.2/generic/" 这个路径是否存在,如果不存在请替换相应的路径

安装完后,执行 expect 如果出现 expect1.1>说明安装成功。

实例
1
2
3
4
5
6
7
8
scp_cmd=`which scp`
expect_cmd=`which expect`

$expect_cmd -c "
spawn $scp_cmd $file_path user@host_ip:/DATA/$file_path
expect \"user@host_ip's password:\"
send \"passwords\r\"
expect eof
-------------本文结束-------------
坚持原创技术分享,您的支持将鼓励我继续创作!
0%