supervisorctl启动与配置队列laravel服务docker复制宿主机文件

在 Laravel 中使用 Supervisor 来管理队列进程非常简单。下面是一些步骤:

**安装 Supervisor:**在你的服务器上安装 Supervisor。你可以使用适合你的操作系统的包管理器来安装,例如在 Ubuntu 上可以使用 apt-get:
安装

sudo apt-get update
sudo apt-get install supervisor


**创建 Supervisor 配置文件:**在 Supervisor 的配置目录中创建一个新的配置文件。这个配置文件将用于定义 Laravel 队列进程。通常情况下,Supervisor 的配置目录位于 /etc/supervisor/conf.d/。你可以创建一个名为 laravel-worker.conf 的新文件:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=8
redirect_stderr=true
stdout_logfile=/path/to/your/log/laravel-worker.log


请确保将 /path/to/artisan 替换为你的 Laravel 项目中 artisan 文件的路径,并将 /path/to/your/log/laravel-worker.log 替换为你想要将日志输出的路径。还要注意将 user 值更改为你的网站用户。

**重新加载 Supervisor 配置:**在编辑完配置文件后,重新加载 Supervisor 的配置以使新的配置生效:

sudo supervisorctl reload


**启动 Laravel 队列进程:**现在,你可以启动 Laravel 的队列进程。在 Laravel 项目的根目录中,运行以下命令:

php artisan queue:work --daemon

或者,你可以使用 php artisan queue:work --daemon --queue=yourqueue 来指定特定的队列名称。

**监控进程:**你可以使用 supervisorctl 命令来监控 Laravel 队列进程。例如,要查看进程状态:

sudo supervisorctl status

如果一切正常,你应该会看到 laravel-worker 进程处于运行状态。

通过以上步骤,你已经设置好了 Supervisor 来管理 Laravel 队列进程。Supervisor 将会确保 Laravel 的队列进程始终运行,并在发生错误时自动重启。

你可以使用 docker cp 命令将文件从 Docker 容器复制到宿主机。以下是示例命令:

docker cp <container_id>:/var/html/a.conf /host/path/for/a.conf

要将文件从宿主机复制到 Docker 容器中,你可以使用 docker cp 命令。以下是示例命令:

docker cp /host/path/for/a.conf <container_id>:/var/html/a.conf

附配置:

[program:lumeng]  ; 是应用程序的唯一标识,不能重复 
 # 指定进程的命名规则:foo_00,foo_01... 
 process_name=%(program_name)s_%(process_num)02d 
 
 # command 必须。程序启动后执行的命令,可以是绝对命令,也可以是相对命令(在环境$PATH中搜索可执行文件)。受控的程序本身不应该是守护程序。 
 command=php /var/www/html/lumeng.com/artisan queue:work  --sleep=3 --tries=3
 
 # Supervisor 启动时自动启动该程序 
 autostart=true 
 
 # 指定进程挂掉时 Supervisor 自动重启进程 
 autorestart=true 
 
 ###
 stopasgroup=true
 killasgroup=true

 # 指定运行进程使用的用户,需要 Supervisor 以root用户运行。使用 setuid 切换用户,不会启动shell程序和改变环境变量 
 user=root 
 
 # 运行和监控的进程数量,进程位于laravel-worker组内,指定该值需同时设置process_name包含%(process_num)s 
 numprocs=3
 
# 将 stderr 错误输出重定向到 stdout 标准输出 
redirect_stderr=true 
 
# 将进程的 stdout 标准输出写入文件中,设为NONE不会创建任何日志文件。 
stdout_logfile=/var/www/html/lumeng.com/storage/logs/queue-worker.log

下一篇:

supervisorctl启动与配置队列laravel服务docker复制宿主机文件-CSDN博客

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Python程序的自启动,可以使用supervisor和supervisorctl工具来管理进程。以下是实现自启动的步骤: 1. 安装supervisor:使用以下命令在Linux系统中安装supervisor: ``` $ sudo apt-get install supervisor ``` 2. 配置supervisor:创建一个新的supervisor配置文件,比如`/etc/supervisor/conf.d/myapp.conf`,并将以下内容添加到文件中: ``` [program:myapp] command=/path/to/python /path/to/your_script.py directory=/path/to/your_script_directory autostart=true autorestart=true stderr_logfile=/var/log/myapp.err.log stdout_logfile=/var/log/myapp.out.log ``` 请替换`/path/to/python`为你的Python解释器路径,`/path/to/your_script.py`为你的Python脚本路径,`/path/to/your_script_directory`为你的脚本所在目录。 3. 更新supervisor配置:运行以下命令更新supervisor配置: ``` $ sudo supervisorctl reread $ sudo supervisorctl update ``` 4. 启动程序:运行以下命令启动你的程序: ``` $ sudo supervisorctl start myapp ``` 确保替换`myapp`为你在配置文件中定义的程序名称。 现在,你的Python程序将自动在系统启动启动,并且由supervisor进行管理。你可以使用supervisorctl命令来管理进程,比如启动、停止、重启等操作。例如: ``` $ sudo supervisorctl stop myapp # 停止程序 $ sudo supervisorctl start myapp # 启动程序 $ sudo supervisorctl restart myapp # 重启程序 ``` 注意:为了让supervisor自启动,你还需要确保supervisord服务在系统启动时自动启动。具体的配置可能因操作系统而异,请根据你的操作系统文档进行配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值