守护进程由 Supervisor 提供支持,用于保持长时间运行的脚本处于活动状态。例如,您可以启动一个守护进程来保持 ReactPHP 应用程序运行。如果进程停止执行,Supervisor 将自动重启进程。
创建新的守护进程时,您需要向 Forge 提供以下信息
命令:守护进程应该运行的命令。例如:php artisan websockets:serve
。
用户:用于调用命令的操作系统用户。默认情况下,将使用 forge
用户。
目录:在其中运行命令的目录。可以留空。
进程:此选项确定应保持运行的进程实例数量。
启动秒数:程序必须保持运行的总秒数,以使启动被认为成功。
停止秒数:Supervisor 在强制终止之前允许守护进程优雅停止的秒数。
停止信号:在请求停止时用于杀死程序的信号。
您可以使用 sudo -S supervisorctl restart daemon-{id}:*
手动重启守护进程,其中 {id}
是守护进程的 ID。例如,如果守护进程的 ID 是 65654
,您可以通过运行 sudo -S supervisorctl restart daemon-65654:*
来重启它。
您也可以在应用程序的部署脚本中运行此命令,以便在部署期间重启守护进程。
Forge 自动配置您的守护进程以写入其自己的日志文件。日志位于 /home/forge/.forge/
目录中。日志文件名为 daemon-*.log
。
用户隔离
如果您使用的是 Forge 的用户隔离功能,您应该根据进程所属用户的 /home/{username}
目录中的 .forge
目录进行导航,以找到守护进程的日志文件。
您可以通过授予server:create-daemons
和 server:delete-daemons
权限,来授权圈子成员创建和管理守护进程。