Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
安装supervisor
easy_install supervisor
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
配置文件
vim /etc/supervisor/supervisord.conf
更改include
[include]
;files = relative/directory/*.ini
files = /etc/supervisor/conf.d/*.conf
mkdir /etc/supervisor/conf.d
vim /etc/supervisor/conf.d/tcpdump.conf
[program:tcpdump]
command=sh /tmp/tcpdump.sh
priority=999 ; the relative start priority (default 999)
autostart=true ; start at supervisord start (default: true)
autorestart=true ; retstart at unexpected quit (default: true)
startsecs=10 ; number of secs prog must stay running (def. 10)
startretries=3 ; max # of serial start failures (default 3)
exitcodes=0,2 ; 'expected' exit codes for process (default 0,2)
stopsignal=QUIT ; signal used to kill process (default TERM)
stopwaitsecs=10 ; max num secs to wait before SIGKILL (default 10)
user=root ; setuid to this UNIX account to run the program
log_stdout=true
log_stderr=true ; if true, log program stderr (def false)
logfile=/tmp/echo_time.log
logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
logfile_backups=10 ; # of logfile backups (default 10)
stdout_logfile_maxbytes=20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups=20 ; stdout 日志文件备份数
stdout_logfile=/tmp/tcpdump.stdout.log
vim /tmp/tcpdump.sh
tcpdump -i eth0 -C 300k -w /root/honeypot_log/$(date +"%Y_%m_%d").cap
更新配置
sudo supervisord
supervisorctl reread
supervisorctl update