Write the Code. Change the World.

5月 20

centos7安装supervisor

方式一: yum 安装

yum install epel-release

yum install supervisor

systemctl enable supervisord # 开机自启动

systemctl start supervisord # 启动supervisord服务

systemctl status supervisord # 查看supervisord服务状态

ps -ef|grep supervisord # 查看是否存在supervisord进程

方式二: apt-get 安装

apt-get install supervisor

操作

systemctl stop supervisord
systemctl start supervisord
systemctl status supervisord
systemctl reload supervisord
systemctl restart supervisord

使用之前

cat /etc/supervisord.conf

在最底部,会看到:

files = supervisord.d/*.ini

这个会调用 supervisord.d 目录下的配置文件。所以我们的配置文件都建在 supervisord.d 下。

使用

vim mlxiu-queue.ini

[program:mlxiu]
process_name=%(program_name)s_%(process_num)02d
command=/alidata/service/php/bin/php /alidata/www/www.mlxiu.com/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
user=nginx
numprocs=8
redirect_stderr=true
stdout_logfile=/alidata/logs/supervisord/www.yueqiubao.net.txt

stdout_logfile 文件一定要先创建好哈。

参考

https://learnku.com/articles/28919

https://blog.csdn.net/donggege214/article/details/80264811

https://blog.csdn.net/kkevinyang/article/details/80539940?utm_source=blogxgwz3

5月 08

官方文档很美好,执行 * * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1 就可以启动每分钟调用一次的调度了。

但是,你会发现该调度只执行一次。

然后你使用 crontab -l 发现空空如也。

这个时候怎么办呢。

操作一

小伙伴也有方法。说 php 路径,文件路径没写成绝对路径,需要有这样的操作。

# 找到 php 的位置
whereis php

# pwd 找到项目的位置

# 然后使用绝对路径执行
* * * * * /usr/bin/php7.3 /home/vagrant/code/work/zeipan.com/artisan schedule:run >> /dev/null 2>&1

但是,依然不行。当然也有人行了。

https://learnku.com/laravel/t/5032/ubuntu1604crontab-timed-tasks-are-not-held

操作二

环境变量等问题

echo $PATH;

# 或
env > /tmp/env.output
cat /tmp/env.output 
# 找到其中的 PATH 的值。

这样操作,感觉不相符。小伙伴也说了,使用了绝对路径可以不用管环境变量的。
https://learnku.com/articles/18697

个人测试有效的方法

依然按照操作一操作。只是,需要先生成一个 cron.txt 文件。在这个文件中,放入之前的命令。然后执行 crontab cron.txt 即可。

vim cron.txt

# 添加内容
* * * * * /usr/bin/php7.3 /home/vagrant/code/work/zeipan.com/artisan schedule:run >> /dev/null 2>&1

# :wq 保存退出

crontab cron.txt

# 查看任务
crontab -l

# 停止所有定时任务
crontab -r 

这样就美美解决了。

https://www.cnblogs.com/lamp01/p/6864258.html