如何与 webpack 服务器并行启动 rails 服务器,以便我可以同时杀死两者?

Ben*_*ett 6 ruby unix terminal ruby-on-rails webpack

我正在寻找一种与 webpack 服务器并行启动 rails 开发服务器的方法。问题是,如果我在后台运行其中之一,当我Ctrl^C关闭所有内容时,一个进程会继续在后台运行,并可能导致一些涉及正在使用的地址的奇怪行为。

我试过这个:

$ rails s & bin/webpack-dev-server

// rails and webpack running in parallel

$ sudo lsof -n -i :3000 -i :3035 | grep LISTEN

ruby    26847 username   13u  IPv4 0xa889e9178532bffd      0t0  TCP 127.0.0.1:hbci (LISTEN)
ruby    26847 username   14u  IPv6 0xa889e91781b9ae3d      0t0  TCP [::1]:hbci (LISTEN)
node    26848 username   19u  IPv4 0xa889e9178e468ffd      0t0  TCP 127.0.0.1:fjsv-gssagt (LISTEN)
Run Code Online (Sandbox Code Playgroud)

但是如您所见,当您尝试使用 终止进程时Ctrl^C,端口上仍有进程在运行。

$ sudo lsof -n -i :3000 -i :3035 | grep LISTEN

ruby    26847 username   13u  IPv4 0xa889e9178532bffd      0t0  TCP 127.0.0.1:hbci (LISTEN)
ruby    26847 username   14u  IPv6 0xa889e91781b9ae3d      0t0  TCP [::1]:hbci (LISTEN)
Run Code Online (Sandbox Code Playgroud)

我知道我可以简单地在单独的终端中运行它们并分别杀死两个进程,但我希望能够创建一个纱线脚本,使用类似yarn start.

Ami*_*ano 5

您可以在此处安装foremangem,说明。

然后创建一个Procfile并将启动脚本添加到其中。

web: bin/webpack-dev-server
api: rails s
Run Code Online (Sandbox Code Playgroud)

要启动服务器运行foreman start

要杀死所有进程使用Ctrl^C,如果失败运行killall "foreman: master"