停止分离的 strongloop 应用程序

Stop detached strongloop application

我在我的服务器 (ubuntu) 上安装了环回,然后创建了一个应用程序并使用命令 slc 运行 运行...一切都按预期进行。 现在我有 1 个问题,还有 1 个问题:

问题:我需要使用 slc 运行 命令,但在关闭终端后还要保留应用程序 "alive"。为此,我使用了 --detach 选项并且它有效,我想知道 --detach 选项是否是最佳实践,或者我需要以不同的方式进行。

问题:在我使用 --detach 之后,我真的不知道如何停止它。我可以使用命令从 运行ning 停止进程吗?

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

最佳实践是一个较长的答案。简短的版本是:不要使用 --detach ever 并使用初始化脚本来 运行 你的应用程序并保持它 运行ning (可能暴发户,因为你在 Ubuntu).

使用slc run

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

你最终会 运行ning 类似 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。如果您使用的 Ubuntu 版本早于 12.04,您需要指定 --upstart 0.6 并且您的日志最终将转至系统日志。

使用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 工作,主要研究这些工具。

如果我必须 运行 应用程序作为集群怎么办?我仍然可以通过创建的暴发户来做到这一点吗? 像 sudo sl-svc-install --name my-app --user youruser --cwd /path/to/app/root -- slc 运行 --cluster 4 .

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

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

slc ctl status

示例输出:

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