我如何停止 immortal / immortalctl 进程?

我如何停止 immortal / immortalctl 进程?

这让我抓狂了!

我一直在轰炸不朽者来停止一个进程,这样我就可以更新它,但是它......不会停止......那个进程是不朽的(双关语)!

我正在尝试停止 .NET Core MVC 应用程序:

我试过了:

  • immortalctl stop <process-name>
  • immortalctl stop <process-id>
  • sudo immortalctl stop <process-name>
  • sudo immortalctl stop <process-id>
  • sudo immortalctl -k <process-id>
  • sudo immortalctl -k <process-name>
  • immortalctl -k <process-id>
  • immortalctl -k <process-name>
  • set IMMORTAL_EXIT=exit sudo immortalctl exit run
  • sudo IMMORTAL_EXIT=exit immortalctl exit run (其中运行是进程名称 - 参见图片)。
  • sudo immortalctl halt "*"大约 5 秒后它就会恢复运行。

以下是文档:
https://immortal.run/post/immortalctl/

这是当前的终端:

在此处输入代码

有任何想法吗?

答案1

停止/启动/重新启动都取决于你如何启动进程(如果使用不朽目录简单的方法就是从您作为参数传递的目录中删除run.yml或重命名,或者在调用(可能)检查时定义run.yml-offimmortaldir/etc/immortal如何安装和设置更多细节

$USER如果你使用你的(非 root)运行该进程,你可以删除该$HOME/.immortal目录(这也会停止其他进程)

要管理流程,您可以使用immortalctl,在您的情况下,run如果您想停止它,则只需执行以下操作:

# immortalctl stop run

或者

$ sudo immortalctl stop run

在这种情况下,run是您的服务名称,也是您的服务配置的名称,可能位于/etc/immortal/run.yml

请记住,immortal如果您使用以下内容,将尽力使您的流程永远保持正常运行:

# immortalctl  -k run

这只会向您的进程发送一个终止信号,但immortal会重新启动它,您可能已经注意到 PID 发生了变化。

当使用immortaldir选项exithalt行为更像是重新启动时,它们确实正在退出或停止(停止并退出管理器),但immortaldir会重新启动您的应用程序,因为其想法是让您的应用程序始终运行。

更多示例请查看:https://immortal.run/post/examples/

答案2

这是一种意想不到的方法:

  1. sudo immortalctl通过执行, (不带 sudo)获取进程 ID immortalctl。 两种方法都会产生不同的结果。
  2. 然后做immortalctl exit <pid-of-sudo-immortalctl>

这应该可以阻止它。

另请参阅:

答案3

尝试killall immortal一下,结束pid。

相关内容