Fedora 38中如何在保持禁用状态下手动启动openvpn-client@实例服务
Fedora 38中如何在保持禁用状态下手动启动openvpn-client@实例服务
嘿,我之前碰到过一模一样的困惑,其实你可能对systemd的「启用/禁用」和「手动启动」的关系有点误解——就算服务处于禁用(disabled)状态,只要对应的单元模板文件存在,你完全可以手动启动它,根本不需要依赖multi-user.target.wants里的符号链接。
给你捋清楚具体操作和原理:
第一步:确保服务处于禁用状态(防止开机自启)
先把这两个openvpn实例设置为禁用,这样开机时它们就不会自动启动了:
sudo systemctl disable openvpn-client@df sudo systemctl disable openvpn-client@sp
你会看到系统删除对应的自启symlink,但这完全不影响后续手动启动。
第二步:随时手动启动/停止服务
当你需要使用其中一个VPN的时候,直接运行启动命令就行,不需要任何额外的symlink:
# 启动df实例 sudo systemctl start openvpn-client@df # 启动sp实例 sudo systemctl start openvpn-client@sp
停止服务的话用:
sudo systemctl stop openvpn-client@df
想查看当前服务状态,用:
systemctl status openvpn-client@df
为什么这能行?
systemd的「enable」操作只是帮你创建开机自启的触发链接,而手动启动服务的时候,systemd会直接从默认的单元文件路径(比如/usr/lib/systemd/system/)加载openvpn-client@.service这个模板单元,再根据你指定的实例名(df、sp)生成对应的临时服务实例。所以只要模板单元存在,不管有没有自启symlink,都能正常手动启动。
之前你觉得没有symlink就没法启动,其实是混淆了「设置开机自启」和「加载服务单元」这两个不同的操作~
备注:内容来源于stack exchange,提问作者Rsevero
相关产品推荐
相关产品推荐

