有人可以帮我澄清一下两者之间的区别吗“使能够”和“开始”对于 systemd 单元。有人告诉我,如果一个单元有一个 [Install] 部分,那么enable
应该被调用,否则就start
足够了。
在启动过程中如何处理? Systemd 自动做出正确的决定?
答案1
要start
(激活)服务,您将运行命令systemctl start my_service.service
,这将立即在当前会话中启动该服务。
对于enable
启动时的服务,您将运行systemctl enable my_service.service
。
使能够一个或多个单元或单元实例。这将创建一组符号链接,如指定单元文件的“[Install]”部分中编码的那样。创建符号链接后,系统管理器配置将重新加载(以相当于守护进程重新加载的方式),以确保立即考虑更改
其中/usr/lib/systemd/system/
包含init
脚本,当您键入systemctl enable
在启动时启动服务时,它将链接到/etc/systemd/system/
。
#systemctl enable my_service.service
ln -s '/usr/lib/systemd/system/my_service.service' '/etc/systemd/system/multi-user.target.wants/my_service.service'
答案2
systemctl enable
将系统配置为在下次重新启动时启动服务(包含有关正确目标状态的警告等)。
systemctl start
立即启动(激活)服务。
因此,如果您希望服务立即启动并在每次重新启动时启动,那么您需要enable
和 start
服务。