我有一个非常旧的控制台应用程序,我想让它更有弹性。该程序是这样使用的:
显然,有时用户只是失去了与机器的 ssh 连接,在这种情况下,ssh 会话被终止,在里面运行的 shell 脚本也被终止,最后进度数据库进程也被终止。在千分之一的情况下,这会导致数据库损坏,所以我想防止它发生。
到目前为止我尝试过的:
关于如何确保在 ssh 会话被终止时进度过程不会终止的任何其他想法?
我正在尝试在 Archlinux 上启动 systemd-timesyncd,它是通过 Distrod 安装在 WSL 之上的。默认情况下,systemd-timesyncd 的单元文件会阻止它在虚拟化环境中启动,该单元文件有一个ConditionVirtualization=!container标志。我正在尝试使用以下配置来覆盖它:
[root@valentine ~]# systemd-detect-virt\nwsl\n[root@valentine ~]# cat /etc/systemd/system/systemd-timesyncd.service.d/override.conf\n[Unit]\nConditionVirtualization=wsl\n[root@valentine ~]# systemctl daemon-reload\n[root@valentine ~]# systemctl start systemd-timesyncd.service\n[root@valentine ~]# systemctl status systemd-timesyncd.service\n\xe2\x97\x8b systemd-timesyncd.service - Network Time Synchronization\n Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; preset: enabled)\n Drop-In: /etc/systemd/system/systemd-timesyncd.service.d\n \xe2\x94\x94\xe2\x94\x80override.conf\n Active: inactive (dead)\n Condition: start condition failed at Mon 2023-02-27 10:38:46 CET; 6s ago\n \xe2\x94\x94\xe2\x94\x80 ConditionVirtualization=!container was not met\n Docs: man:systemd-timesyncd.service(8)\n\nFeb 27 10:38:46 valentine systemd[1]: Network Time Synchronization was skipped because of an unmet condition check (ConditionVirtualization=!container).\n …Run Code Online (Sandbox Code Playgroud) arch-linux systemd windows-subsystem-for-linux systemd-timesyncd