停止分离的strongloop应用程序

时间:2015-02-28 15:35:02

标签: loopbackjs strongloop

我在我的服务器(ubuntu)上安装了loopback,然后创建了一个应用程序并使用命令slc run来运行...一切正常。 现在我有1个问题,也有1个问题我正面临:

问题:我需要使用slc run命令,但在关闭终端后也要保持应用程序“活着”。为此,我使用了--detach选项并且它有效,我想知道--detach选项是最佳实践还是我需要以不同的方式进行。

问题:在我使用--detach后,我真的不知道如何阻止它。是否有可用于阻止进程运行的命令?

3 个答案:

答案 0 :(得分:7)

要停止--detach ed进程,请转到运行它的同一目录并执行slc runctl stop。有许多runctl命令,但stop可能是您最感兴趣的命令。

最佳做法是一个更长的答案。简短版本是:不要使用--detach 永远并使用init脚本来运行您的应用并使其保持运行(可能是Upstart,因为您使用的是Ubuntu)。

使用slc run

如果您希望将slc run作为Upstart作业运行,则可以使用npm install -g strong-service-install安装强服务安装。这将为您提供sl-svc-install,一个用于创建Upstart和systemd服务的实用程序。

您最终会运行类似sudo sl-svc-install --name my-app --user youruser --cwd /path/to/app/root -- slc run .的内容,这应该会创建一个名为my-app的Upstart作业,该作业将从应用的根目录运行您的应用作为您的uid。您的应用程序的stdout / stderr将被发送到/var/log/upstart/my-app.log。如果您使用的是早于12.04的Ubuntu版本,则需要指定--upstart 0.6,而您的日志最终将转到syslog。

使用slc pm

另一种可能更简单的方法是使用slc pm,其运行级别高于slc run,并且更容易安装为OS服务。对于这条路线,您已经安装了所有东西。将安装sudo slc pm-installstrong-pm Upstart服务以及strong-pm用户运行它与/ var / lib / strong-pm的$ HOME一样。

如果PM方法稍微复杂一点,那就是必须将应用程序部署到它。很可能这只是转到您的应用根并运行slc deploy http://localhost:8701/,但具体情况取决于您的应用。您可以为应用配置环境变量,部署新版本,日志将显示在/var/log/upstart/strong-pm.log中。

一般最佳实践

对于上述任一选项,我建议在服务器上执行npm install -g strongloop,因为它包含yeoman生成器和其他在工作站上比服务器更有用的工具。

如果您想使用slc run路线,则可以npm install -g strong-supervisor strong-service-install并将slc run替换为sl-run

如果您想使用slc pm路线,您可以npm install -g strong-pm并将slc pm-install替换为sl-pm-install

声明

我在StrongLoop工作,主要从事这些工具。

答案 1 :(得分:2)

使用以下方式查看正在运行的应用的状态:

Service ID: 1
Service Name: app
Environment variables:
  No environment variables defined
Instances:
    Version  Agent version  Debugger version  Cluster size  Driver metadata
     5.2.1       2.0.3             n/a              1             N/A
Processes:
       ID      PID  WID  Listening Ports  Tracking objects?  CPU profiling?  Tracing?  Debugging?
    1.1.2708  2708   0
    1.1.5836  5836   1     0.0.0.0:3001

Service ID: 2
Service Name: default
Environment variables:
  No environment variables defined
Instances:
    Version  Agent version  Debugger version  Cluster size  Driver metadata
     5.2.1       2.0.3             n/a              1             N/A
Processes:
       ID      PID  WID  Listening Ports  Tracking objects?  CPU profiling?  Tracing?  Debugging?
    2.1.2760  2760   0
    2.1.1676  1676   1     0.0.0.0:3002

示例输出:

slc ctrl stop

要杀死第一个应用,请使用slc ctl stop app Service "app" hard stopped

stubs

答案 2 :(得分:0)

如果我必须将应用程序作为群集运行,该怎么办?我还可以通过创建的新贵来做到这一点。 喜欢 sudo sl-svc-install --name my-app --user youruser --cwd / path / to / app / root - slc run --cluster 4.

我尝试过这样做,但/etc/init/my-app.conf没有显示有关群集的任何信息。