小编gfx*_*onk的帖子

systemd:停止所有已卸载的单元

我安装并运行了一些 systemd 单元。假设我手动foo.service卸载

  • 删除其 .service(和 .socket)文件
  • 删除所有符号链接(例如来自default.target.wants/)

我可以运行systemctl daemon-reload,然后我看到:

# systemctl status foo.service
foo.service
   Loaded: error (Reason: No such file or directory)
   Active: active (running) since Mon 2013-07-08 13:50:29 EST; 48s ago
 Main PID: 1642 (node)
Run Code Online (Sandbox Code Playgroud)

因此 systemd 知道它尚未安装,并且正在运行。是否有一些命令可以用来停止所有正在运行的不再有单元文件的服务?


我已经考虑过的事情:

  • systemctl isolate <current-target>

    这会产生副作用,即停止当前目标不需要的其他手动启动的服务。

  • 使用systemctl disable而不是手动删除文件

    我愿意,但这个脚本可能从可以访问正在运行的容器的文件系统的主机运行 - 它不能systemd直接调用。

  • 使用systemctl stop foo.service

    这意味着我知道哪些服务已被卸载。我不想弄清楚这一点(或记住它),我想要一个可以随时运行的通用命令来停止任何延迟的服务。

systemd

3
推荐指数
1
解决办法
1641
查看次数

标签 统计

systemd ×1