通过python启用systemd服务

通过python启用systemd服务,python,service,systemd,dbus,Python,Service,Systemd,Dbus,根据,我可用于启动/停止Systemd服务,如下所示: 导入dbus sysbus=dbus.SystemBus() systemd1=sysbus.get_对象('org.freedesktop.systemd1','/org/freedesktop/systemd1')) manager=dbus.Interface(systemd1,“org.freedesktop.systemd1.manager”) job=manager.RestartUnit('sshd.service','fai

根据,我可用于启动/停止Systemd服务,如下所示:

导入dbus
sysbus=dbus.SystemBus()
systemd1=sysbus.get_对象('org.freedesktop.systemd1','/org/freedesktop/systemd1'))
manager=dbus.Interface(systemd1,“org.freedesktop.systemd1.manager”)
job=manager.RestartUnit('sshd.service','fail')
但是如果我想在那里启用systemd服务呢。我已经尝试用
启用单元
替换
重启单元
,但我得到了:

dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Unknown method EnableUnit or interface org.freedesktop.systemd1.Manager.

嗯。多亏了特里·斯波茨,我才明白

job=manager.EnableUnitFiles(['ssh.service'],False,True)
manager.Reload()
第一个参数是systemd单元文件名的列表

第二个参数是一个布尔值,用于控制该单元是仅在运行时启用(true,/run),还是持续启用(false,/etc)


第三个参数是一个布尔值,用于控制在必要时是否应替换指向其他单位的符号链接。

您是否阅读了
EnableUnitFiles()
上的文档?@Terry事实上,我找不到这些文档,尽管他们还没有成功编写它们!