标签: system-dependent

在 systemd 中停止服务之前卸载文件系统

我正在调试 systemd 关闭问题。这里的问题是一些文件系统在服务仍在运行时被卸载。

一般来说,我们希望systemd先关闭服务,然后卸载挂载点。

但在这里,卸载和停止服务是并行发生的。(见下文)。首先还要卸载根文件系统。

#        Unmounting /root...
         Unmounting /var/lib/ntp...
         Unmounting /etc/cron.d/local...
[  OK  ] Stopped Apply Kernel Variables.
         Unmounting /proc/fs/nfsd...
         Unmounting /tmp/rshell/trace...
         Stopping Availability of block devices...
         Unmounting /etc/timestamp...
         Unmounting /var/lib/nfs/rpc_pipefs...
         Unmounting /etc/sysconfig/clock...
[  OK  ] Removed slice system-getty.slice.
[  OK  ] Stopped Load Kernel Modules.
         Unmounting /etc/ssh/ssh_external_host_rsa_key...
[  OK  ] Stopped Create Static Device Nodes in /dev.
         Unmounting /mnt/log...
[  OK  ] Stopped Resets System Activity Logs.
         Stopping Crond Periodic Command Scheduler...
[  OK  ] Stopped Mount Restricted …
Run Code Online (Sandbox Code Playgroud)

linux system-dependent system-shutdown systemd

9
推荐指数
1
解决办法
6868
查看次数

systemd可以自动重启/停止依赖服务吗?

出于性能原因,我需要运行应用程序的多个实例,固定到CPU,监听不同的端口.HAProxy TCP负载均衡器位于它们前面以分配流量.

这样做是为了防止任何线程上下文切换并强制执行无共享设计(因此在应用程序中不需要任何类型的锁,假设它是单线程的).

这意味着在具有64个CPU的服务器上,我可能将HAProxy固定到CPU 0,然后将我的应用程序的63个实例分别固定到单独的CPU(1-63).

显然,在启动,重启,关闭等方面进行管理非常复杂.

我想知道是否有任何方法可以使用systemd为我处理这种复杂性.

我知道,如果我将HAProxy定义为一个单元然后声明它需要与之交谈的其他应用程序,它可以解决启动问题,例如

Require=app1,app2,.....,app63
Run Code Online (Sandbox Code Playgroud)

我可以

 systemctl start myhaproxy
Run Code Online (Sandbox Code Playgroud)

它首先会启动它需要的63个实例(假设它们在应用程序安装期间被定义为一个单独的系统单元).

但是,我想知道是否还有我可以让它也适用于重启和关机.

所以,如果我这样做:

systemctl stop myhaproxy
Run Code Online (Sandbox Code Playgroud)

我希望它自动关闭它所谈到的应用程序的所有63个实例.

如果我这样做

systemctl restart myhaproxy
Run Code Online (Sandbox Code Playgroud)

然后我希望它首先重新启动Require中列出的所有服务,然后再重新启动它自己.

那可能吗?或者这超出了systemd可以提供的范围?

linux multithreading real-time system-dependent systemd

2
推荐指数
1
解决办法
3008
查看次数