按上篇文章,安装好supervisor之后。
一、首先找到supervisord.conf目录,一般在/etc/supervisord.conf。
如果找不到,可以使用命令
sudo find /etc -name supervisord.conf
查找一下。
二、可以配置文件分开,也可以合在一起,以下是合在一起了
touch my_script.ini #创建配置文件
vim my_script.ini #进入文件里进行编辑
#配置文件里内容
[program:my_script]
command=./root/my_script.sh #这是宿主机的脚本
autostart=true
autorestart=true
redirect_stderr=true
[program:my_php]
command=docker exec php php wd.php #这是php容器里的php脚本
autostart=true
autorestart=true
redirect_stderr=true
三、
1.my_script.sh脚本文件
#!/bin/bash
while true; do
date "+%Y-%m-%d %H:%M:%S" >> bbb
sleep 3
done
注:以上是一个测试用的脚本,每3秒会往bbb文件写入当前日期时间
记得要给my_script.sh加可执行权限,命令:chmod +x my_script.sh
这个文件在宿主机root目录下
2.wd.php 脚本
<?php
$filename = './file.txt';
// 无限循环,每隔7秒写入当前日期
while (true) {
$date = date('Y-m-d H:i:s') . PHP_EOL;
file_put_contents($filename, $date, FILE_APPEND);
// 等待7秒
sleep(7);
}
注:以上是一个测试用的脚本,每7秒会往file.txt文件写入当前日期时间
记得要给my_script.sh加可执行权限,命令:chmod +x file.txt
这个文件在php容器www目录下
三、执行上篇讲到的命令
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl status
可以看到以下守护的进程
四、测试
1.my_script脚本
ps -ef | grep my_script
可以看到my_script脚本已经起来了
使用kill 【进程id】将进程杀掉,还会起来。
可以看到生成的文件(宿主机)
2.wd脚本
在容器里,使用kill 【进程id】将进程杀掉,还会起来。
可以看到生成的文件(容器里)