Laravel 回显服务器在退出控制台上被杀死

Laravel echo server killed on exit console

我正在使用 laravel-echo-server 并且一切正常,如果我使用此命令启动服务器:

laravel-echo-server start

我明白了:

L A R A V E L E C H O S E R V E R

版本 1.2.8

Starting server...

✔  Running at localhost on port 3001
✔  Channels are ready.
✔  Listening for http events...
✔  Listening for redis events...

Server ready!

但是如果我用 ctrl+c 关闭服务器就被杀死了!如果我使用这个命令,同样的事情:

laravel-echo-server start &

如果我断开 ssh 连接,服务器将停止工作!

如何在后台模式下启动?

谢谢!

安装Supervisor on linux. Here is a manual: https://laravel.com/docs/5.4/queues#supervisor-configuration

这是我的主管配置文件:

[program:websocket-server]
process_name=%(program_name)s
directory=/var/www/example.de/public_html/
command=/usr/lib/node_modules/laravel-echo-server/bin/server.js start
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/example.de/logs/websocket-server.log

现在您可以使用 supervisorctl start websocket-server:*

在后台启动服务器

我推荐使用pm2工具来管理larval-echo-server服务。安装 pm2 后,您必须在 Laravel 项目中创建一个 json 文件,内容如下:

echo-pm2.json

{
  "name": "echo",
  "script": "laravel-echo-server",
  "args": "start"
}

然后运行下一个在后台启动服务的命令:

pm2 start echo-pm2.json

您可以使用 pm2 monit 命令进行实时监控或 pm2 logs 也可以获取服务日志。