停止分离的 strongloop 应用程序
Stop detached strongloop application
我在我的服务器 (ubuntu) 上安装了环回,然后创建了一个应用程序并使用命令 slc 运行 运行...一切都按预期进行。
现在我有 1 个问题,还有 1 个问题:
问题:我需要使用 slc 运行 命令,但在关闭终端后还要保留应用程序 "alive"。为此,我使用了 --detach 选项并且它有效,我想知道 --detach 选项是否是最佳实践,或者我需要以不同的方式进行。
问题:在我使用 --detach 之后,我真的不知道如何停止它。我可以使用命令从 运行ning 停止进程吗?
要停止 --detach
ed 进程,请转到 运行 所在的同一目录并执行 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-install
和 strong-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
我在我的服务器 (ubuntu) 上安装了环回,然后创建了一个应用程序并使用命令 slc 运行 运行...一切都按预期进行。 现在我有 1 个问题,还有 1 个问题:
问题:我需要使用 slc 运行 命令,但在关闭终端后还要保留应用程序 "alive"。为此,我使用了 --detach 选项并且它有效,我想知道 --detach 选项是否是最佳实践,或者我需要以不同的方式进行。
问题:在我使用 --detach 之后,我真的不知道如何停止它。我可以使用命令从 运行ning 停止进程吗?
要停止 --detach
ed 进程,请转到 运行 所在的同一目录并执行 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-install
和 strong-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